zoukankan      html  css  js  c++  java
  • Java数据库——PreparedStatement接口

    PreparedStatement接口是Statement的子接口,属于预处理操作,与直接使用Statement不同的是,PreparedStatement在操作时,是先在数据表中准备好了一条SQL语句,但是此SQL语句的具体内容暂时不设置,而是之后再进行设置。

    使用PreparedStatement完成数据的增加和查询操作

    //=================================================
    // File Name       :	PreparedStatement_demo
    //------------------------------------------------------------------------------
    // Author          :	Common
    
    import java.sql.*;
    import java.text.SimpleDateFormat;
    
    //主类
    //Function        : 	PreparedStatement_demo
    public class PreparedStatement_demo {
    
    	//定义MySQL的数据库驱动程序
    	public static final String DBDRIVER = "org.gjt.mm.mysql.Driver";
    	//定义MySQL数据库的连接地址
    	public static final String DBURL = "jdbc:mysql://localhost:3306/mysql_demo";
    	//MySQL数据库的连接用户名
    	public static final String DBUSER = "root";
    	//MySQL数据库的连接密码
    	public static final String DBPASS = "123456";
    	
    	public static void main(String[] args) throws Exception{
    		// TODO 自动生成的方法存根
    		Connection conn = null;						//数据库连接
    		PreparedStatement pstmt = null;	//数据库操作
    		
    		String name = "王五";
    		String password = "pwd2";
    		int age = 25;
    		String sex = "女";
    		String birthday = "2002-11-21";
    		java.util.Date temp = null;				//声明一个Date对象
    		//通过SimpleDateFormat类将一个字符串变成java.util.Date类型
    		temp = new SimpleDateFormat("yyyy-MM-dd").parse(birthday);
    		//通过java.util.Date取出具体的日期数,并将其变成java.sql.Date类型
    		java.sql.Date bir = new java.sql.Date(temp.getTime());
    		String sql = "INSERT INTO user(name,password,age,sex,birthday)"+"VALUES(?,?,?,?,?)";//编写预处理SQL
    		Class.forName(DBDRIVER);			//加载驱动程序
    		//连接MySQL数据库时,要写上连接的用户名和密码
    		conn = DriverManager.getConnection(DBURL,DBUSER,DBPASS);
    		pstmt = conn.prepareStatement(sql);		//实例化PreparedStatement
    		pstmt.setString(1, name);					//设置第一个“?”的内容
    		pstmt.setString(2, password);			//设置第二个“?”的内容
    		pstmt.setInt(3, age);								//设置第三个“?”的内容
    		pstmt.setString(4, sex);							//设置第四个“?”的内容
    		pstmt.setDate(5, bir);							//设置第五个“?”的内容
    		pstmt.executeUpdate();						//执行数据库更新操作,不需要SQL
    		
    		pstmt.close(); 										//操作关闭
    		conn.close(); 										//数据库关闭
    		
    	}
    
    }
    

    模糊查询

    //=================================================
    // File Name       :	PreparedStatement_demo
    //------------------------------------------------------------------------------
    // Author          :	Common
    
    import java.sql.*;
    import java.text.SimpleDateFormat;
    
    //主类
    //Function        : 	PreparedStatement_demo
    public class PreparedStatement_demo {
    
    	//定义MySQL的数据库驱动程序
    	public static final String DBDRIVER = "org.gjt.mm.mysql.Driver";
    	//定义MySQL数据库的连接地址
    	public static final String DBURL = "jdbc:mysql://localhost:3306/mysql_demo";
    	//MySQL数据库的连接用户名
    	public static final String DBUSER = "root";
    	//MySQL数据库的连接密码
    	public static final String DBPASS = "123456";
    	
    	public static void main(String[] args) throws Exception{
    		// TODO 自动生成的方法存根
    		
    		Connection conn = null;						//数据库连接
    		PreparedStatement pstmt = null;	//数据库操作
    		String keyWord = "王";							//设置查询关键字
    		String keyWord1 = "男";							//设置查询关键字
    		ResultSet rs = null;								//保存查询结果
    		String sql = "SELECT id,name,password,age,sex,birthday"+
    				" FROM user WHERE name LIKE ? OR password LIKE ? OR sex LIKE ?";
    		Class.forName(DBDRIVER);			//加载驱动程序
    		//连接MySQL数据库时,要写上连接的用户名和密码
    		conn = DriverManager.getConnection(DBURL,DBUSER,DBPASS);
    		pstmt = conn.prepareStatement(sql);		//实例化PreparedStatement
    		pstmt.setString(1, "%"+keyWord+"%");					//设置第一个“?”的内容
    		pstmt.setString(2, "%"+keyWord+"%");					//设置第一个“?”的内容
    		pstmt.setString(3, "%"+keyWord1+"%");					//设置第一个“?”的内容
    		rs = pstmt.executeQuery();						//实例化ResultSet对象
    		while(rs.next()){
    			int id = rs.getInt(1);
    			String name = rs.getString(2);
    			String pass = rs.getString(3);
    			int age = rs.getInt(4);
    			String sex = rs.getString(5);
    			java.util.Date d = rs.getDate(6);
    			System.out.println("编号:"+id);
    			System.out.println("名字:"+name);
    			System.out.println("密码:"+pass);
    			System.out.println("年龄:"+age);
    			System.out.println("性别:"+sex);
    			System.out.println("生日:"+d);
    		}
    		rs.close();												//关闭结果集
    		pstmt.close(); 										//操作关闭
    		conn.close(); 										//数据库关闭
    		
    	}
    
    }
    

     

  • 相关阅读:
    [Day01] Python基础
    Python数据结构与循环语句
    elementui级联下拉框怎么设置可选择任意一级选项以及设置后前面会出现1个单选按钮去掉单选按钮的方法和选好后下拉面板不自动收起的问题
    解决ElementUI中的Cascader 级联选择器高度过高的问题
    git切换分支提示:you need to resolve your current index first
    提交本地代码到git远程仓库时误操作让git代码覆盖了本地代码,找回本地代码的解决方法
    elementui在表格/下来列表等展示数据的区显示加载中
    vueshop
    elementui表单验证无效的解决方法
    elementui滑块开启和关闭状态动态绑定
  • 原文地址:https://www.cnblogs.com/tonglin0325/p/5303373.html
Copyright © 2011-2022 走看看