JDBCUtils —> 工具类
1.要导入JDBC jar包
导入位置 web项目在 Web/INT-INF/libs
普通项目 与 src 平级 也就是总目录 的 lib文件夹里
2.工具类 所有的 成员对象 与 方法 写成静态
3. 用静态代码块 目的在加载工具类时一起加载
用加载器 转换文件为输入流
创建Properties集合,加载流对象信息
获取信息为变量赋值
注册驱动
4. 获取数据库连接方法
5. 释放资源方法
6. 工具类 都要写 自己的 空参构造方法
public class JDBCUtils {
/* JDBC 工具类 */
//private 私有构造方法
private JDBCUtils(){}
//声明变量信息 与 config 配置文件内容保持一直
private static String driverClass;
private static String url;
private static String username;
private static String password;
private static Connection con;
//静态代码块中实现加载配置文件 和 注册驱动
static{
try{
//通过本工具类名 用加载器 转换文件为输入流
InputStream is = JDBCUtils.class.getClassLoader().getResourceAsStream("config.proeprties");
//创建Properties集合,加载流对象信息
Properties prop = new Properties();
prop.load(is);
//获取信息为变量赋值
driverClass = prop.getProperty("driverClass");
url = prop.getProperty("url");
username = prop.getProperty("username");
password = prop.getProperty("password");
//注册驱动
Class.forName(driverClass);
}catch(Exception e){
e.printStackTrace();
}
}
//获取数据库连接方法
public static Connection getConnection(){
try {
con = DriverManager.getConnection(url,username,password);
} catch (SQLException e) {
e.printStackTrace();
}
return con;
}
//释放资源方法
public static void close(Connection con, Statement stat, ResultSet rs){
if (con!=null){
try {
con.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (stat!=null){
try {
stat.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (rs!=null){
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
public static void close(Connection con,Statement stat){
if (con!=null){
try {
con.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (stat!=null){
try {
stat.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
JDBC ----》 数据库连接池
连接池对象 DataSource dataSource;
1.要导入JDBC jar包
要导入 druid jar包
导入位置 web项目在 Web/INT-INF/libs
普通项目 与 src 平级 也就是总目录 的 lib文件夹里
2.工具类 所有的 成员对象 与 方法 写成静态
3. 用静态代码块 目的在加载工具类时一起加载
用加载器 转换文件为输入流
获取连接池
4. 提供获取连接池方法
5. 释放资源方法
6. 工具类 都要写 自己的 空参构造方法
//创建构造方法
private JDBCUtilss(){ }
//声明连接池对象
private static DataSource dataSource;
//创建静态代码块 获取连接
static{
//获取链接对象
try {
//加载配置文件
InputStream is = JDBCUtilss.class.getClassLoader().getResourceAsStream("druid.properties");
Properties prop = new Properties();
prop.load(is);
//获取连接池
dataSource = DruidDataSourceFactory.createDataSource(prop);
} catch (Exception e) {
e.printStackTrace();
}
}
//提供获取连接池方法
public static Connection getConnection(){
Connection con = null;
try {
con = dataSource.getConnection();
} catch (SQLException e) {
e.printStackTrace();
}
return con;
}
//释放资源
public static void close(Connection con, Statement stat, ResultSet rs){
if (con!=null){
try {
con.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (stat!=null){
try {
stat.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (rs!=null){
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
public static void close(Connection con,Statement stat){
if (con!=null){
try {
con.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (stat!=null){
try {
stat.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
MyBatisUtils ---------->工具类
//声明连接工厂对象
private static SqlSessionFactory sqlSessionFactory;
1.要导入JDBC jar包
要导入 mybatis jar包
导入位置 web项目在 Web/INT-INF/libs
普通项目 与 src 平级 也就是总目录 的 lib文件夹里
2.工具类 所有的 成员对象 与 方法 写成静态
3. 用静态代码块 目的在加载工具类时一起加载
静态代码块,读取核心配置文件并获取工厂对象赋值
4. 提供获取连接池方法
5. 释放资源方法
6. 工具类 都要写 自己的 空参构造方法
7.用mybatis 不用写 释放资源的代码
/*工具类*/
private MyBatisUtils(){}
//声明连接工厂对象
private static SqlSessionFactory sqlSessionFactory;
//静态代码块,读取核心配置文件并获取工厂对象赋值
static {
try {
sqlSessionFactory = new SqlSessionFactoryBuilder().build(Resources.getResourceAsStream("MyBatisConfig.xml"));
} catch (IOException e) {
e.printStackTrace();
}}
//提供静态方法 返回SqlSession对象
public static SqlSession getSqlSession(){
return sqlSessionFactory.openSession(true);//这里true 是自动提交事务
}