JDBC回顾

用了一段时间的Mybatis,突然感觉JDBC有点陌生,虽然Mybatis好用,但不能忘本啊,赶紧来回顾一下JDBC。
首先建立实体类:Car

package com.test;

public class Car {
    private Integer c_no;
    private String c_name;


    public Car() {
        super();
        // TODO Auto-generated constructor stub
    }
    public Car(Integer c_no, String c_name) {
        super();
        this.c_no = c_no;
        this.c_name = c_name;
    }
    public Integer getC_no() {
        return c_no;
    }
    public void setC_no(Integer c_no) {
        this.c_no = c_no;
    }
    public String getC_name() {
        return c_name;
    }
    public void setC_name(String c_name) {
        this.c_name = c_name;
    }
    @Override
    public String toString() {
        return "Car [c_no=" + c_no + ", c_name=" + c_name + "]";
    }


}

再设置数据库的连接及数据操作(Mysql的连接jar包一定要记得导入,不然会报错):

package com.test;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;





public class ConnectionToMysql {
    private String url;//数据库的连接地址
    private String user;//用户
    private String password;//数据库登录密码
    private String driverClass;//数据库驱动
    private Connection connection;
    private PreparedStatement preparedStatement;
    {
        url="jdbc:mysql:///mybatis";
        user="root";
        password="123456";
        driverClass="com.mysql.jdbc.Driver";
    }

    public void getConnection() throws ClassNotFoundException, SQLException{
        Class.forName(driverClass);
        //建立数据库的连接
        connection=DriverManager.getConnection(url,user,password);
        System.out.println("connection!");


//查询所有的Car
    public List<Car> getAll(){
        String sql="select * from car";
        List<Car> carList=new ArrayList<>();
        try {
//使用preparedStatement(预编译的SQL语句,可以防止SQL注入),当然也可以使用Statement,但是一般建议使用preparedStatement.
            preparedStatement=connection.prepareStatement(sql);
//执行查询
            ResultSet result= preparedStatement.executeQuery();
//将查询出的结果封装成Car对象(由于不是ORM,不会自动封装,所以只能靠自己手动封装了)
            while(result.next()){
//result.getxxx()中的参数可以是表中对应的列表名,也可以是索引值(列相应的顺序)
                int c_no=result.getInt("c_no");
                String c_name=result.getString("c_name");
                System.out.println(c_no+"----"+c_name);
                Car car=new Car(c_no,c_name);
                carList.add(car);
            }
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return carList;
    }
//查询指定no的Car
public Car queryByNo(int c_no ){
        String c_name=null;
        //使用?表示占位符
        String  sql="select c_name from car where c_no = "+no;
        try {

            //使用preparedStatement(预编译)
            preparedStatement=connection.prepareStatement(sql);
            //给占位符赋值
            preparedStatement.setInt(1, c_no);
            //执行查询
            ResultSet rs=preparedStatement.executeQuery();
            while(rs.next()){
                c_name=rs.getString("c_name");

            }


        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

        return new Car(c_no,c_name);

    }

}
//关闭连接
public void closeMysql() throws Exception{
        con.close();
    }

由于想偷懒,并没有将操作数据的方法写入Dao类,此处也省略了增加、修改、删除,但大体操作也差不了。
那么做个简单的JDBC使用总结:

-加载驱动,及连接细节(必须进入相应Jar包);
- 建立连接;
- 使用preparedStatement/statement来进行操作数据,执行时使用preparedStatement/statement.executeQuery()(查询)/execute()(增、删、改);
- 关闭数据库的连接(数据涉及到资源,所以要及时的关闭)。

不是ORM,自己要写封装代码,是真的难受!!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值