首页 > 编程语言 >day23 JDBC(Java Database Connection)连接 与 通配符与插入返回主键

day23 JDBC(Java Database Connection)连接 与 通配符与插入返回主键

时间:2022-11-01 19:56:01浏览次数:33  
标签:ps JDBC Java String public static sql catch 主键

JDBC配置connector的jar包

1.项目下新建lib文件夹
2.将mysql-connector-java-版本号.jar复制到lib目录下
3.右键项目名,选择Properties选项
4.点击Add JARS...,选中刚复制的jar包后,点击Apply=》OK

连接数据库

连接的过程

1)加载驱动
2)创建连接对象
3)创建执行对象
4)执行sql语句
5)处理返回结果
6)关闭访问资源

public class JdbcDemo01{
	public static final String URL = "jdbc:mysql://localhost:3306/situ001?serverTimezone=UTC&useSSL=false";//&useSSL=false可不加,serverTimezone=UTC表示时区
	public static final String USER = "root";
	public static final String PASS = "123456";
	
	static Connection conn = null;
	static PrepareStatement ps = null;
	static ResultSet rs = null;
	
	//建立数据库连接
	public static void init(){
		try{
			//加载驱动
			Class.forName("com.mysql.cj.jdbc.Driver");
			//建立连接
			conn = DriverManager.getConnection(URL,USER,PASS);
			System.out.println("建立连接成功");
		}catch (ClassNotFoundException  e) {
			e.printStackTrace();
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}
	
	//查询
	public static void query(String sql){
		init();
		try{
			ps = conn.prepareStatement(sql);
			rs = ps.excuteQuery(sql);
			while(rs.next()){
				System.out.println(rs.getInt("id")+","+rs.getString("s_name"));
			}
		}catch (SQLException e) {
			e.printStackTrace();
		}finally{
			close();
		}
	}
	
	//修改表(增删改)
	public static void excute(String sql){
		init();
		try{
			ps = conn.prepareStatement(sql);
			int rows = ps.excuteUpdate(sql);
			if(rows == 0) System.out.println("没有改变表中的记录");
			System.out.println("修改成功");
		}catch (SQLException e) {
			e.printStackTrace();
		}finally{
			close();
		}
	
	//添加一条数据同时返回其主键
	public static Integer addReturnPK(String sql){
		init();
		try{
			ps = conn.prepareStatement(sql,ps.RETURN_GENERATED_KEYS);
			int rows = ps.excuteUpdate();
			if(rows == 0) return null;
			Result rs2 = ps.getGeneratedKeys();
			Integer id = null;
			while(rs2.next()){
				id = rs2.getInt(1);
			}
			return id;
		}catch (SQLException e) {
			e.printStackTrace();
			return null;
		}finally{
			close();
		}
	}
	
	//关闭连接
	public static void close(){
		try {
			if(rs != null) rs.close();
		} catch (SQLException e) {
			e.printStackTrace();
		}
		try {
			if(ps != null) ps.close();
		} catch (SQLException e) {
			e.printStackTrace();
		}
		try {
			if(conn != null) conn.close();
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}
	
	public static void main(String[] args){
		//测试查询方法
		String sql = "select*from student";
		
	}

}

查询 和 增删改方法的优化(输入参数)

  	
	public static void excute(String sql, String name, Integer age){
		init();
		try {
			ps = conn.prepareStatement(sql);
			ps.setString(1, name);
			ps.setInt(2, age);
			int rows = ps.executeUpdate();
			if (rows >0) {
				System.out.println("执行成功");
			}else{
				System.out.println("没有影响记录");
			}
			
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			System.out.println("执行失败");
		}finally {
			close();
		}
		
	}
	
 	public static void query(String sql, Integer id,String name){
		init();
		try {
			ps = conn.prepareStatement(sql);
			ps.setInt(1, id);
			ps.setString(2, name);
			rs = ps.executeQuery();
			while(rs.next()){
				System.out.println(rs.getInt("id")+","+rs.getString("s_name"));
			}
			
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally {
			close();
		}
		
	}

标签:ps,JDBC,Java,String,public,static,sql,catch,主键
From: https://www.cnblogs.com/xiaoto9426/p/16848022.html

相关文章

  • Java多线程(7):JUC(上)
    您好,我是湘王,这是我的51CTO博客,欢迎您来,欢迎您再来~前面把线程相关的生命周期、关键字、线程池(ThreadPool)、ThreadLocal、CAS、锁和AQS都讲完了,现在就剩下怎么来用多线程了。......
  • 如何用 JavaScript 编写你的第一个单元测试
    测试代码是确保代码稳定的第一步。能做到这一点的最佳方法之一就是使用单元测试,确保应用程序中的每个较小的功能都按应有的方式运行——尤其是当应用程序接收到极端或无效输......
  • Java学习笔记day2--循环结构
    **循环结构包括四个部分:初始化部分循环条件部分循环体部分迭代部分1>for循环for(初始化部分;循环条件部分;迭代条件......
  • JavaScript对象Date和JavaScript对象Math
    4.Date:日期对象1.创建:vardate=newDate();2.方法:toLocaleString():返回当前dat......
  • Java学习笔记day2——循环结构综合例题(1个)
    //循环语句综合例题/*例题1:从键盘读入个数不确定的整数,并判断读入的正数和负数的个数,输入为零时,结束程序。*/......
  • Java学习笔记day2--分支结构之switch
    /*switch(表达式){case常量1:语句1;//break;case常量2:语句2;//break;……default:语句;//break;说明:1.按......
  • java多态的案例
    classAnimal{intage=100;//如果父类中没有call方法,那么子类中也不能调用该方法,编译时会出错publicvoidcall(){System.out.println("动物再......
  • Java读取共享文件夹下面的文件(利用smb协议)
    一、开启smb协议1.1控制面板->程序->启用或关闭window功能->smb1.0二、设置共享文件2.1选择你想要共享的文件夹设置everyone或者指定的用户授权给某个用户。需要密......
  • 最常用的JavaScript数组方法
    数组在我们开发中是最容易见到的,比如我们的全国地理坐标数据,接口返回的json数据中也会有很多数组数组中,我们常用的数组方法有数组遍历,根据索引值获取数组值,以及转换......
  • java
    publicclassCar{publicintage;publicstaticvoidmain(String[]args){//类是模板是抽象的,对象是具体的Class<Car>carClass=Car.class;......