JDBC开发步骤

学习了JDBC后对JDBC的开发步骤做一个简单的整理
JDBC详细学习笔记 提取码:k0a8

三层架构项目结构

utils 存放工具类(DBUtils)
entity 存放实体类
dao存放DAO接口(PersonDao)impl存放DAO接口的实现类

service存放service接口(PersonService)impl存放service接口的实现类

view存放程序启动类(main)

程序设计时,考虑易修改、易扩展,为Service层和DAO层设计接口,便于为了更换实现类

1. 引入相关jar包

    新建名lib文件夹
    复制jar包到该文件夹
    右键lib文件夹选择Add as Libaray

mysql连接驱动jar包
druid-1.15.jar
commons-dbutils-1.7.jar

获取jar包 提取码:kb4d

2. 创建配置文件

    项目上右键 New >> Resource Bundle输入文件名database
    配置文件中输入以下配置信息
#驱动
driver=com.mysql.jdbc.Driver
#连接到本地3306端口(MySQL服务的端口号) compandb表示要连接的数据库
#?useUnicode=true&characterEncoding=utf8表示连接到数据库使用的编码格式是UTF-8
url=jdbc:mysql://localhost:3306/companydb?useUnicode=true&characterEncoding=utf8
#连接数据库的用户名
username=root
#连接数据库的密码
password=123456

#连接池配置
#初始化连接
initialSize=10
#最大连接数量
maxActive=30
#最小空闲连接
minIdle=5
#超时等待时间 单位:毫秒
maxWait=3000


3.编写 DBUtils工具类

API设计:

类名 DbUtils

成员变量
private static DruidDataSource ds:数据库连接池
private static final ThreadLocal THREAD_LOCAL:控制事务

静态代码块
创建连接池

成员方法
1. public static Connection getConnection():获取连接
2. public static void begin():开启事务
3. public static void commit():提交事务
4. public static void rollback():回滚事务
5.public static void closeAll():释放资源

具体代码:


import com.alibaba.druid.pool.DruidDataSource;
import com.alibaba.druid.pool.DruidDataSourceFactory;

import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Properties;

public class DbUtils {
//数据库连接池
private static DruidDataSource ds;
//用于控制事务
private static final ThreadLocal<Connection> THREAD_LOCAL = new ThreadLocal<>();
static {
Properties PROPERTIES = new Properties();
//获取指定配置文件的字节输入流
InputStream inputStream = DbUtils.class.getResourceAsStream("/database.properties");
try {
//加载到 PROPERTIES
PROPERTIES.load(inputStream);
//创建连接池
ds = (DruidDataSource) DruidDataSourceFactory.createDataSource(PROPERTIES);
} catch (IOException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}

/**
* 获取连接
* @return 返回一个连接对象
*/
public static Connection getConnection(){
//先在THREAD_LOCAL拿
Connection connection = THREAD_LOCAL.get();
if(connection == null){
try {
//THREAD_LOCAL拿没有拿到,从连接池拿
connection = ds.getConnection();
//拿到后,存到THREAD_LOCAL
THREAD_LOCAL.set(connection);
} catch (SQLException e) {
e.printStackTrace();
}
}
return connection;
}

/**
* 开启事务
*/
public static void begin(){
Connection connection = null;
connection = getConnection();
//设置自动提交为false,开启事务
try {
connection.setAutoCommit(false);
} catch (SQLException e) {
e.printStackTrace();
}
}

/**
* 事务提交
*/
public static void commit(){
Connection connection = null;
connection = getConnection();
try {
connection.commit();
} catch (SQLException e) {
e.printStackTrace();
}finally {
closeAll(connection,null,null);
}
}

/**
* 回滚事务
*/
public static void rollback(){
Connection connection = null;
connection = getConnection();
try {
connection.rollback();
} catch (SQLException e) {
e.printStackTrace();
}finally {
closeAll(connection,null,null);
}
}

//释放资源
public static void closeAll(Connection connection, PreparedStatement preparedStatement, ResultSet resultSet){
try {
if(resultSet!=null){
resultSet.close();
}
if(preparedStatement!=null){
preparedStatement.close();
}
if(connection!=null){
connection.close();
THREAD_LOCAL.remove();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}


4.创建实体类

实体类完成数据库中表的映射,表名为类名,列名为属性。

5.编写Dao层实现类

Dao使用Apache的DbUtils完成增、删、改、查。
DbUtils使用步骤:

    创建QueryRunner对象
    增、删、改调用:update()
    查询调用:query()
//创建QueryRunner对象
private QueryRunner queryRunner = new QueryRunner();
//增、删、改 参数1:数据库连接对象 参数2:sql语句 参数3:sql语句的占位填充
Object[] param = {};
int result = queryRunner.update(DbUtils.getConnection(),"sql语句",param);
//查寻到的数据封装成指定对象
Admin admin = queryRunner.query(DbUtils.getConnection(), "sql语句", new BeanHandler<Admin>(Admin.class), "sql语句占位填充");
//查寻所有 封装成集合 指定泛型
List<Admin> adminList = queryRunner.query(DbUtils.getConnection(), "sql语句", new BeanListHandler<Admin>(Admin.class));


6.编写Service层实现类

步骤:

    开启事务
    调用DAO层
    处理数据
    提交或回滚

原创:https://www.panoramacn.com
源码网提供WordPress源码,帝国CMS源码discuz源码,微信小程序,小说源码,杰奇源码,thinkphp源码,ecshop模板源码,微擎模板源码,dede源码,织梦源码等。

专业搭建小说网站,小说程序,杰奇系列,微信小说系列,app系列小说

免责声明,若由于商用引起版权纠纷,一切责任均由使用者承担。

您必须遵守我们的协议,如果您下载了该资源行为将被视为对《免责声明》全部内容的认可-> 联系客服 投诉资源
www.panoramacn.com资源全部来自互联网收集,仅供用于学习和交流,请勿用于商业用途。如有侵权、不妥之处,请联系站长并出示版权证明以便删除。 敬请谅解! 侵权删帖/违法举报/投稿等事物联系邮箱:2640602276@qq.com
未经允许不得转载:书荒源码源码网每日更新网站源码模板! » JDBC开发步骤
关注我们小说电影免费看
关注我们,获取更多的全网素材资源,有趣有料!
120000+人已关注
分享到:
赞(0) 打赏

评论抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

您的打赏就是我分享的动力!

支付宝扫一扫打赏

微信扫一扫打赏