谈谈JDBC
作者:互联网
Java操作数据库
1.数据库驱动
驱动:声卡、显卡、数据库
我们程序会通过 数据库 驱动,和数据库打交道!
2.JDBC
一个Java操作数据库的规范,俗称就是JDBC
我们只需要掌握JDBC接口的操作即可
java.sql、javax.sql,这两个包默认就有
我们还需要一个数据库驱动包
3.第一个JDBC程序
1.数据库环境搭建【建数据库表】
CREATE DATABASE jdbcStudy CHARACTER SET utf8 COLLATE utf8_general_ci; USE jdbcStudy; CREATE TABLE users( `id` INT PRIMARY KEY, `NAME` VARCHAR(40), `PASSWORD` VARCHAR(40), `email` VARCHAR(60), `birthday` DATE ); INSERT INTO users(`id`,`NAME`,`PASSWORD`,`email`,`birthday`) VALUES(1,'juanxingcai','123456','3506565743@qq.com','1980-12-04'), (2,'lisi','123456',' lisi@sina.com','1981-12-04'), (3, 'wangwu','123456','wangwu@sina.com','1979-12-04');
2.创建一个新项目
略
3.导入数据库驱动
首先在目录下创建一个lib的文件夹-把mysql-connector-java-5.1.47复制到这里面,然后右键Add as Library(把它添加到项目的库里面)
这样子才是ok
4.编写测试代码
public class JdbcfirstDome { public static void main(String[] args) throws ClassNotFoundException, SQLException { //1.加载驱动 Class.forName("com.mysql.cj.jdbc.Driver"); //2.用户信息和url String url ="jdbc:mysql://localhost:3306/jdbcstudy?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8"; String username = "root"; String password = "123456"; //3.连接成功,数据库对象 Connection代表数据库 Connection connection = DriverManager.getConnection(url,username,password); //4.执行sql的对象 Statement执行sql Statement statement = connection.createStatement(); //5.执行sql的对象 去执行sql 可能存在结果 String sql="SELECT * FROM users"; ResultSet resultSet = statement.executeQuery(sql);//返回的结果集 while (resultSet.next()){ System.out.println("id="+resultSet.getObject("id")); System.out.println("name="+resultSet.getObject("NAME")); System.out.println("pwd="+resultSet.getObject("PASSWORD")); System.out.println("email="+resultSet.getObject("email")); System.out.println("birth="+resultSet.getObject("birthday")); } //6.释放连接 resultSet.close(); statement.close(); connection.close(); } }
结果
id=1 name=juanxingcai pwd=123456 email=3506565743@qq.com birth=1980-12-04 id=2 name=lisi pwd=123456 email= lisi@sina.com birth=1981-12-04 id=3 name=wangwu pwd=123456 email=wangwu@sina.com birth=1979-12-04
5.实现JDBC步骤
1.加载驱动【我这边采用的是MySQL的驱动】
注意点:Mysql8.0版本之前的驱动是com.mysql.jdbc.Driver【我的版本是8.0之后的】
2.获取链接【无非就是url,user,password】
注意点:Mysql版本不一样,url的参数也许不同,具体问题具体分析
3.获取数据库操作对象【执行sql语句的对象】
4.执行sql语句【增删改查】
5.处理查询结果集
6.关闭资源
4.提取工具类
db.properties
driver=com.mysql.cj.jdbc.Driver url=jdbc:mysql://localhost:3306/jdbcstudy?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8 username=root password=123456
JdbcUtils类
这边我们先把基本的东西封装成工具类,之后直接拿来用即可
public class JdbcUtils { private static String driver=null; private static String url=null; private static String username=null; private static String password=null; static { try{
//可以理解为获取db.properties文件的信息 InputStream in = JdbcUtils.class.getClassLoader().getResourceAsStream("db.properties"); Properties properties =new Properties();
//从输入流中读取属性列表(键和元素对) properties.load(in);
driver=properties.getProperty("driver"); url=properties.getProperty("url"); username=properties.getProperty("username"); password=properties.getProperty("password"); //1.驱动只需加载一次 Class.forName("com.mysql.cj.jdbc.Driver"); } catch (Exception e) { e.printStackTrace(); } } //获取连接 public static Connection getConnection() throws SQLException { return DriverManager.getConnection(url,username,password); } //释放资源 public static void release(Connection conn, Statement st, ResultSet res){ if (res!=null){ try { res.close(); }catch (SQLException e){ e.printStackTrace(); } } if (st!=null){ try { st.close(); }catch (SQLException e){ e.printStackTrace(); } } if (conn!=null){ try { conn.close(); }catch (SQLException e){ e.printStackTrace(); } } } }
5.PreparedStatement对象
它可以防止sql注入问题
我们写这个记住几个步骤
1.获取数据库链接
2.sql语句
3.预编译sql
4.手动给参数赋值
5.执行怎删改的函数
6.释放资源
我们这边试着向数据库添加一个数据,使用perparedStatement对象
public class TextInsert { public static void main(String[] args) { Connection conn=null; PreparedStatement st=null; try { conn = JdbcUtils.getConnection(); //区别 使用?占位符代替参数 String sql="INSERT INTO users(id,`NAME`,`PASSWORD`,`email`,`birthday`) values(?,?,?,?,?)"; st= conn.prepareStatement(sql);//预编译sql,先写sql,不执行 //手动给参数赋值 st.setInt(1,4); //"1"代表上面的第一个?四是值 st.setString(2,"juanxingcai"); st.setString(3,"123456"); st.setString(4,"743003309@qq.com"); //注意点:sql.Date 数据库 util.Date Java 获得时间戳 st.setDate(5,new java.sql.Date(new Date().getTime())); //执行 int i = st.executeUpdate(); if (i>0){ System.out.println("插入成功"); } } catch (SQLException e) { e.printStackTrace(); }finally { JdbcUtils.release(conn,st,null); } } }
6.IDEA连接数据库
点击测试如果报错,解决问题
点击下图这个,然后mysql,加号Custon JAR把你之前的jar8.0的包放进去
连接成功后,添加完毕后,选择你需要的数据库
双击数据库
提交按钮
打开sqlyog的界面
输入sql语言
若有侵权,请联系
标签:JDBC,String,数据库,st,谈谈,sql,null,com 来源: https://www.cnblogs.com/com-Jacob/p/16224873.html