JDBC操作

JDBC操作


常用API

DriverManager(类):加载管理驱动
Connection:建立连接
Statement:执行命令并返回结果
ResultSet:结果集

连接数据库四大件

驱动类:Driver
用户名 :user
密码: password
MySQL服务器地址:url

 	static Connection conn;
    static String user = "用户名";
    static String psw = "密码";
    static String url = "jdbc:mysql://localhost:3306/数据库名?characterEncoding=utf-8";
    
    //驱动类,通过反射的方式加载
 	Class.forName("com.mysql.jdbc.Driver");
 	//使用驱动管理类,调用mysql的驱动类,创建数据库连接
	conn = DriverManager.getConnection(url,user,password);

使用Statement实现数据库操作

通过连接对象获取Statement对象

Statement stat = conn.createStatement();

在这里插入图片描述步骤:

  1. 添加jar包
  2. 加载驱动类
  3. 获取连接对象(Connection)
  4. 创建命令执行对象(Statement)
  5. 定义sql
  6. 执行命令
  7. 关闭数据库对象

使用PreparedStatement操作数据库

  1. PreparedStatement继承自Statement接口
  2. 预编译的sql语句对象
  3. 对sql语进行预编译,存储到PreparedStatement对象中,执行效率高
  4. 避免sql注入式攻击,安全性高。使用的参数式sql命令
insert into table (id,name,sex) value(?,?,?);

在这里插入图片描述

获取自增列的值

 //创建预编译命令对象时,要提供获取自增值的参数
 pst = conn.prepareStatement(sql,Statement.RETURN_GENERATED_KEYS);
 //获取自增返回的结果集对象
 rs = pst.getGeneratedKeys();
 while (rs.next()){
    int id = rs.getInt(1);
    if(id!=0){
       co = id;
   }
}
 System.out.println("主键自增至:"+co);

事务

原子性:事务作为整体执行,要么都成功,要么都回滚
一致性:表示事务失败时,所有被该事务影响的数据都会恢复到事务执行前的状态
隔离性:多个事务在并发状态下,是相互独立,操作过程中的数据不能跟其他事务共享
持久性:事务对数据库的改变是永久的

java.sql.Connection //提供了以下控制事务的方法:

public void setAutoCommit(boolean) //设置事务的提交方式
public boolean getAutoCommit() //获取自动提交的状态
public void commit() //提交事务
public void rollback() //回滚事务


//具体代码
//获取链接
conn = getConn();
//改为手动提交事务
conn.setAutoCommit(false);
//提交事务
conn.commit();
//回滚事务
conn.rollback();

Junit测试类

juint:测试工具类,可以在一个类中定义多个方法,批量执行

  1. 添加jar包
  2. 在类中定义测试方法
  3. 在普通方法上添加@Test注解
  4. 选中方法执行

测试类测试增删改查

	//添加注解
    @org.junit.Test
    public void test() {
        String sql = "select * from books";
        //注意中文拼接时要加单引号
        String addsql = "insert into books(id,bookName,author,price,inDate) value (default,?,?,?,?)";
        String delsql = "delete from book_cate where cateId = 12";
        String updsql = "update book_cate set cateName ="+"'政治'"+"where cateId = 7";
        //查
        JdbcUtil.getBook(sql);
        //增
        JdbcUtil.BookCate(addsql);
        //删
        JdbcUtil.BookCate(delsql);
        //改
        JdbcUtil.BookCate(updsql);
        
    }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

总有一天你会出现在我身边

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值