Java基础 -- JDBC连接

前言

复习一下数据库的连接

关于连接数据库,主要是四个参数,

  1. 加载驱动
  2. 获取连接
  3. 建立连接需要的用户账号和密码;

如果不使用ben配置,基础写法如下

正文

准备数据库,以msql数据库为例

  1. 创建库
  2. 个人定义库为 myLibrary
  3. 定义表为user
  4. 定义账号为 root
  5. 定义密码为123456
  6. 定义连接为本地连接127.0.0.1连接地址可在数据库里面更改

user表部分

@Data
public class User {

    private String Id;     //id为主键自增.
    private String Name;
    private String Sex;
    private String Age;
    
    User(String Name, String Sex, String Age) {
        this.Id = null;
        this.Name = Name;
        this.Sex = Sex;
        this.Age = Age;
    }
}

JDBC部分

public class jdbcTest {

step1
私有的创建连接

step2
增删改查

step3
占位符添加条件增删改查

step4
关闭连接
}


JDBC 建立连接


    private static Connection getConn() 
   //    加载驱动注解
        String driver = "com.mysql.jdbc.Driver";
 //      url连接地址  本地 127.0.0.1 地址  后面跟的myLibrary是我的库名字  后面默认为utf8格式 库里面有个表user
         String url = "  jdbc:mysql://127.0.0.1:3306/myLibrary?useUnicode=true&characterEncoding=utf-8";
//        数据库连接的账号
        String username = "root";
//        数据库连接密码
        String password = "123456";
//        定义连接类型变量conn
        Connection conn = null;
        try {
//        加载驱动
            Class.forName(driver);
//		建立连接
            conn = (Connection) DriverManager.getConnection(url, username, password);
            if(conn != null){
// 			输出连接信息
      	  out.println("数据库连接成功!");
	    }else{
//			 输出连接信息
        out.println("数据库连接失败!");
    }
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return conn;
    }

JDBC增加插入方法

private static int insert(User user) {
//  调用方法获得连接
    Connection conn = getConn();
//  定义执行语句变量
    PreparedStatement pstmt;
//    定义返回结果参数变量
    int i = 0;
//  定义一条执行语句,占用部分用?占位符
    String sql = "insert into user(Name,Sex,Age) values(?,?,?)";
    try {
//   		从连接里面获取一条执行语句
//   		 Statement stat = conn.createStatement();  
//   		 防止sql注入生成PreparedStatement 
//   		 PreparedStatement pstmt = conn.prepareStatement("把sql语句放到构造方法,执行执行语句");
//			直接获取PreparedStatement 
     	   pstmt = (PreparedStatement) conn.prepareStatement(sql);
 //    	 占位符三个
     	   pstmt.setString(1, user.getName());
     	   pstmt.setString(2, user.getSex());
    	    pstmt.setString(3, user.getAge());
//        执行执行语句获取插入成功数量
     	   i = pstmt.executeUpdate();
//		关闭连接,也可以封装关闭连接方法调用关闭连接方法执行,直接写了       
        pstmt.close();
        conn.close();
	    } catch (SQLException e) {
        e.printStackTrace();
	    }
//  关闭连接
		finally {
            closelianjie(pstmt,conn)
        }
    return i;
}

JDBC增加update修改方法

private static int update(User user) {
    Connection conn = getConn();
    int i = 0;
    String sql = "update user  set name='" + user.getname() + "' where id=user.getid ";
    PreparedStatement pstmt;
    try {
        pstmt = (PreparedStatement) conn.prepareStatement(sql);
        i = pstmt.executeUpdate();
        System.out.println("更改行数为: " + i);
        pstmt.close();
        conn.close();
    } catch (SQLException e) {
        e.printStackTrace();
    }
    return i;
}

JDBC增加select搜索方法

private static Integer getAll() {
    Connection conn = getConn();
    String sql = "select * from user";
    PreparedStatement pstmt;
    try {
        pstmt = (PreparedStatement)conn.prepareStatement(sql);
        ResultSet rs = pstmt.executeQuery();
        while (rs.next()) {
    String id =  rs.getStrin(id);
 	String name =   rs.getString(name)
 	String sex =  rs.getString(sex)
            System.out.println("ID:"+id+"Name:"+name+"SEX:"+sex);
    } catch (SQLException e) {
        e.printStackTrace();
    }
    return null;
}

JDBC增加删除方法

private static int delete(Int id) {
    Connection conn = getConn();
    int i = 0;
    String sql = "delete from students where id='" + id+ "'";
    PreparedStatement pstmt;
    try {
        pstmt = (PreparedStatement) conn.prepareStatement(sql);
        i = pstmt.executeUpdate();
        System.out.println("resutl: " + i);
        pstmt.close();
        conn.close();
    } catch (SQLException e) {
        e.printStackTrace();
    }
    return i;
}

这个类完成了, 需要使用的时候直接调用其中方法传参即可

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值