{tabs-pane label="mysql属性配置"}
username=root
password=zd2580
url=jdbc:mysql://localhost:3306/books
driverClassName=com.mysql.jdbc.Driver
initialSize=5
maxActive=10
{/tabs-pane} {tabs-pane label="获取数据库的连接池"}
//2
private static DruidDataSource dataSource;
//3
static {
//4
try {
//6
Properties properties = new Properties();
//7 读取jdbc.properties属性配置文件
InputStream inputStream = JdbcUtile.class.getClassLoader().getResourceAsStream("jdbc.properties");
//8 从流中加载数据
properties.load(inputStream);
//5 创建 数据库连接池
dataSource = (DruidDataSource) DruidDataSourceFactory.createDataSource(properties);
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 获取数据库连接池中的连接
* @return 如果返回null,说明获取连接失败,有值说明成功
*/
public static Connection getConnection(){
Connection conn=null;
try {
conn= dataSource.getConnection();
} catch (SQLException e) {
e.printStackTrace();
}
return conn;
}
/**
* 关闭数据库,放回数据库连接
* @param conn
*/
public static void close(Connection conn){
if (conn != null){
try {
conn.close();
}catch (Exception e){
e.printStackTrace();
}
}
}
{/tabs-pane} {tabs-pane label="BaseDao"}
//1 使用Dbutile操作数据库
private QueryRunner queryRunner=new QueryRunner();
/**
* 用来执行增删改
* @return 如果返回-1 说明执行失败 其他表示影响的行数
*/
public int updata(String sql,Object ... args){
Connection connection= JdbcUtile.getConnection();
try {
return queryRunner.update(connection,sql,args);
}catch (Exception e){
e.printStackTrace();
}finally {
JdbcUtile.close(connection);
}
return -1;
}
/**
* 查询返回一个JavaBean的sql语句
* @param type
* @param sql
* @param args
* @param
* @return
*/
public T queryForOne(Classtype,String sql,Object ... args){
Connection con=JdbcUtile.getConnection();
try {
return queryRunner.query(con,sql,new BeanHandler(type),args);
}catch (Exception e){
e.printStackTrace();
}finally {
JdbcUtile.close(con);
}
return null;
}
/**
* 查询语句返回多个的sql语句
* @param type
* @param sql
* @param args
* @param
* @return
*/
public List queryForList(Classtype,String sql,Object ... args){
Connection con=JdbcUtile.getConnection();
try {
return queryRunner.query(con,sql,new BeanListHandler(type),args);
}catch (Exception e){
e.printStackTrace();
}finally {
JdbcUtile.close(con);
}
return null;
}
/**
* 执行一行一列的sql语句
* @param sql sql
* @param args
* @return
*/
public Object queryForSingleValue(String sql,Object ... args){
Connection con=JdbcUtile.getConnection();
try {
return queryRunner.query(con,sql,new ScalarHandler(),args);
} catch (Exception e) {
e.printStackTrace();
}finally {
JdbcUtile.close(con);
}
return null;
}
{/tabs-pane}
本文共 140 个字数,平均阅读时长 ≈ 1分钟