您当前的位置: 首页 > 学无止境 > 心得笔记 网站首页心得笔记
【第17章:Java数据库编程】_PreparedStatement接口
发布时间:2021-01-10 15:21:18编辑:雪饮阅读()
数据库的预处理操作
增
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;
import java.sql.ResultSet;
import java.sql.PreparedStatement ;
import java.text.SimpleDateFormat ;
public class TestJava{
public static final String DBDRIVER="org.gjt.mm.mysql.Driver";
public static final String DBURL="jdbc:mysql://localhost:3306/xy";
public static final String DBUSER="root";
public static final String DBPASS="";
public static void main(String args[]) throws Exception{
Class.forName(DBDRIVER);
Connection conn=DriverManager.getConnection(DBURL,DBUSER,DBPASS);
String sql="insert into message(title,content,created_at,user_name,age) values (?,?,?,?,?)";
PreparedStatement pstmt=conn.prepareStatement(sql);
java.util.Date tempTime=new SimpleDateFormat("yyyy-MM-dd").parse("2021-01-10");
java.sql.Date created_at=new java.sql.Date(tempTime.getTime());
pstmt.setString(1,"hello kasumi");
pstmt.setString(2,"kasumi, are you ok recently? I am snowDrink");
pstmt.setDate(3,created_at);
pstmt.setString(4,"snowDrink");
pstmt.setInt(5,18);
int rs=pstmt.executeUpdate();
pstmt.close();
conn.close();
}
}
D:\>javac TestJava.java
D:\>java TestJava
查
查询只是将sql变动了,其它都差不多的
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;
import java.sql.ResultSet;
import java.sql.PreparedStatement ;
import java.text.SimpleDateFormat ;
public class TestJava{
public static final String DBDRIVER="org.gjt.mm.mysql.Driver";
public static final String DBURL="jdbc:mysql://localhost:3306/xy";
public static final String DBUSER="root";
public static final String DBPASS="";
public static void main(String args[]) throws Exception{
Class.forName(DBDRIVER);
Connection conn=DriverManager.getConnection(DBURL,DBUSER,DBPASS);
String sql="select id,title,content,user_name,created_at from message where title like ? or content like ? or user_name like ?";
PreparedStatement pstmt=conn.prepareStatement(sql);
String keyWord="kasumi";
pstmt.setString(1,"%"+keyWord+"%");
pstmt.setString(2,"%"+keyWord+"%");
pstmt.setString(3,"%"+keyWord+"%");
ResultSet rs=pstmt.executeQuery();
while(rs.next()){
int id=rs.getInt(1);
String title=rs.getString(2);
String content=rs.getString(3);
String user_name=rs.getString(4);
java.util.Date created_at=rs.getDate(5);
System.out.print("id:"+id+" ");
System.out.print("title:"+title+" ");
System.out.print("content:"+content+" ");
System.out.print("user_name:"+user_name+" ");
System.out.print("created_at:"+created_at+" ");
System.out.println();
}
pstmt.close();
conn.close();
}
}
那么没有预处理变量,则中间设置关键字这种类似代码都去除了也没有事
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;
import java.sql.ResultSet;
import java.sql.PreparedStatement ;
import java.text.SimpleDateFormat ;
public class TestJava{
public static final String DBDRIVER="org.gjt.mm.mysql.Driver";
public static final String DBURL="jdbc:mysql://localhost:3306/xy";
public static final String DBUSER="root";
public static final String DBPASS="";
public static void main(String args[]) throws Exception{
Class.forName(DBDRIVER);
Connection conn=DriverManager.getConnection(DBURL,DBUSER,DBPASS);
String sql="select id,title,content,user_name,created_at from message";
PreparedStatement pstmt=conn.prepareStatement(sql);
ResultSet rs=pstmt.executeQuery();
while(rs.next()){
int id=rs.getInt(1);
String title=rs.getString(2);
String content=rs.getString(3);
String user_name=rs.getString(4);
java.util.Date created_at=rs.getDate(5);
System.out.print("id:"+id+" ");
System.out.print("title:"+title+" ");
System.out.print("content:"+content+" ");
System.out.print("user_name:"+user_name+" ");
System.out.print("created_at:"+created_at+" ");
System.out.println();
}
pstmt.close();
conn.close();
}
}
D:\>javac TestJava.java
D:\>java TestJava
id:3 title:hello kasumi content:How are you? user_name:snowDrink created_at:2021-01-10
id:4 title:hello snowDrink content:snowDink, are you ok recently? I am kasumi user_name:kasumi created_at:2021-01-10
id:5 title:hello kasumi content:kasumi, are you ok recently? I am snowDrink user_name:snowDrink created_at:2021-01-10
其实像是这种没有预处理变量的本来用不用prepareStatement也是可以的,用默认的createStatement照样香
关键字词:java,数据库,预处理,PreparedStatement