「javajdbc语句」JDBC语句
本篇文章给大家谈谈javajdbc语句,以及JDBC语句对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
- 1、java jdbc 预编译语句和普通语句的区别
- 2、java中使用JDBC完成数据库操作的基本步骤是什么?
- 3、JDBC Java 数据库插入语句
- 4、Java里面的JDBC是什么意思啊?
- 5、java jdbc如何使用
- 6、java中用JDBC执行语句出错
java jdbc 预编译语句和普通语句的区别
一般是在需要反复使用一个SQL语句时才使用预编译语句,预编译语句常常放在一个for或者while循环里面使用,通过反复设置参数从而多次使用该SQL语句;为了防止SQL注入漏洞,在某些数据操作中也使用预编译语句。这点是预编译语句和普通语句最大的区别。
java中使用JDBC完成数据库操作的基本步骤是什么?
创建一个以JDBC连接数据库的程序,包含7个步骤: \x0d\x0a 1、加载JDBC驱动程序: \x0d\x0a 在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Java虚拟机), \x0d\x0a 这通过java.lang.Class类的静态方法forName(String className)实现。 \x0d\x0a 例如: \x0d\x0a try{ \x0d\x0a //加载MySql的驱动类 \x0d\x0a Class.forName("com.mysql.jdbc.Driver") ; \x0d\x0a }catch(ClassNotFoundException e){ \x0d\x0a System.out.println("找不到驱动程序类 ,加载驱动失败!"); \x0d\x0a e.printStackTrace() ; \x0d\x0a } \x0d\x0a 成功加载后,会将Driver类的实例注册到DriverManager类中。 \x0d\x0a 2、提供JDBC连接的URL \x0d\x0a •连接URL定义了连接数据库时的协议、子协议、数据源标识。 \x0d\x0a •书写形式:协议:子协议:数据源标识 \x0d\x0a 协议:在JDBC中总是以jdbc开始 \x0d\x0a 子协议:是桥连接的驱动程序或是数据库管理系统名称。 \x0d\x0a 数据源标识:标记找到数据库来源的地址与连接端口。 \x0d\x0a 例如:(MySql的连接URL) \x0d\x0a jdbc:mysql: \x0d\x0a //localhost:3306/test?useUnicode=truecharacterEncoding=gbk ; \x0d\x0a useUnicode=true:表示使用Unicode字符集。如果characterEncoding设置为 \x0d\x0a gb2312或GBK,本参数必须设置为true 。characterEncoding=gbk:字符编码方式。 \x0d\x0a 3、创建数据库的连接 \x0d\x0a •要连接数据库,需要向java.sql.DriverManager请求并获得Connection对象, \x0d\x0a 该对象就代表一个数据库的连接。 \x0d\x0a •使用DriverManager的getConnectin(String url , String username , \x0d\x0a String password )方法传入指定的欲连接的数据库的路径、数据库的用户名和 \x0d\x0a 密码来获得。 \x0d\x0a 例如: \x0d\x0a //连接MySql数据库,用户名和密码都是root \x0d\x0a String url = "jdbc:mysql://localhost:3306/test" ; \x0d\x0a String username = "root" ; \x0d\x0a String password = "root" ; \x0d\x0a try{ \x0d\x0a Connection con = \x0d\x0a DriverManager.getConnection(url , username , password ) ; \x0d\x0a }catch(SQLException se){ \x0d\x0a System.out.println("数据库连接失败!"); \x0d\x0a se.printStackTrace() ; \x0d\x0a } \x0d\x0a 4、创建一个Statement \x0d\x0a •要执行SQL语句,必须获得java.sql.Statement实例,Statement实例分为以下3 \x0d\x0a 种类型: \x0d\x0a 1、执行静态SQL语句。通常通过Statement实例实现。 \x0d\x0a 2、执行动态SQL语句。通常通过PreparedStatement实例实现。 \x0d\x0a 3、执行数据库存储过程。通常通过CallableStatement实例实现。 \x0d\x0a 具体的实现方式: \x0d\x0a Statement stmt = con.createStatement() ; \x0d\x0a PreparedStatement pstmt = con.prepareStatement(sql) ; \x0d\x0a CallableStatement cstmt = \x0d\x0a con.prepareCall("{CALL demoSp(? , ?)}") ; \x0d\x0a 5、执行SQL语句 \x0d\x0a Statement接口提供了三种执行SQL语句的方法:executeQuery 、executeUpdate \x0d\x0a 和execute \x0d\x0a 1、ResultSet executeQuery(String sqlString):执行查询数据库的SQL语句 \x0d\x0a ,返回一个结果集(ResultSet)对象。 \x0d\x0a 2、int executeUpdate(String sqlString):用于执行INSERT、UPDATE或 \x0d\x0a DELETE语句以及SQL DDL语句,如:CREATE TABLE和DROP TABLE等 \x0d\x0a 3、execute(sqlString):用于执行返回多个结果集、多个更新计数或二者组合的 \x0d\x0a 语句。 \x0d\x0a 具体实现的代码: \x0d\x0a ResultSet rs = stmt.executeQuery("SELECT * FROM ...") ; \x0d\x0a int rows = stmt.executeUpdate("INSERT INTO ...") ; \x0d\x0a boolean flag = stmt.execute(String sql) ; \x0d\x0a 6、处理结果 \x0d\x0a 两种情况: \x0d\x0a 1、执行更新返回的是本次操作影响到的记录数。 \x0d\x0a 2、执行查询返回的结果是一个ResultSet对象。 \x0d\x0a • ResultSet包含符合SQL语句中条件的所有行,并且它通过一套get方法提供了对这些 \x0d\x0a 行中数据的访问。 \x0d\x0a • 使用结果集(ResultSet)对象的访问方法获取数据: \x0d\x0a while(rs.next()){ \x0d\x0a String name = rs.getString("name") ; \x0d\x0a String pass = rs.getString(1) ; // 此方法比较高效 \x0d\x0a } \x0d\x0a (列是从左到右编号的,并且从列1开始) \x0d\x0a 7、关闭JDBC对象 \x0d\x0a 操作完成以后要把所有使用的JDBC对象全都关闭,以释放JDBC资源,关闭顺序和声 \x0d\x0a 明顺序相反: \x0d\x0a 1、关闭记录集 \x0d\x0a 2、关闭声明 \x0d\x0a 3、关闭连接对象 \x0d\x0a if(rs != null){ // 关闭记录集 \x0d\x0a try{ \x0d\x0a rs.close() ; \x0d\x0a }catch(SQLException e){ \x0d\x0a e.printStackTrace() ; \x0d\x0a } \x0d\x0a } \x0d\x0a if(stmt != null){ // 关闭声明 \x0d\x0a try{ \x0d\x0a stmt.close() ; \x0d\x0a }catch(SQLException e){ \x0d\x0a e.printStackTrace() ; \x0d\x0a } \x0d\x0a } \x0d\x0a if(conn != null){ // 关闭连接对象 \x0d\x0a try{ \x0d\x0a conn.close() ; \x0d\x0a }catch(SQLException e){ \x0d\x0a e.printStackTrace() ; \x0d\x0a } \x0d\x0a }
JDBC Java 数据库插入语句
你妹的,写了占位符你又不用东西填,sql当然错了,报的sql不完整
两种方案
A。 valuses后的四个问号直接写上参数
B。用import java.sql.PreparedStatement;包下的PreparedStatement方法
预编的方式进行填充示例
PreparedStatement ps = null;
sql = "insert into record(cId,bId,mId,borrowDate,returnDate) values(?,?,?,?,?)";
ps.setInt(1,第一个值);
ps.setInt(2,第二个值);
ps.setInt(3,第三个值);
ps.setInt(4,第四个值);
//提交1234必须写setInt是举例子你看自己的那些字段是什么类型的
ps.executeUpdate();
Java里面的JDBC是什么意思啊?
Java数据库连接是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法。JDBC也是Sun Microsystems的商标。我们通常说的JDBC是面向关系型数据库的。
这种类型的驱动把所有JDBC的调用传递给ODBC,再让后者调用数据库本地驱动代码(也就是数据库厂商提供的数据库操作二进制代码库,例如Oracle中的oci.dll)。
API概述
JDBC API主要位于JDK中的java.sql包中(之后扩展的内容位于javax.sql包中),主要包括(斜体代表接口,需驱动程序提供者来具体实现):
DriverManager:负责加载各种不同驱动程序(Driver),并根据不同的请求,向调用者返回相应的数据库连接(Connection)。Driver:驱动程序,会将自身加载到DriverManager中去,并处理相应的请求并返回相应的数据库连接(Connection)。Connection:数据库连接,负责与进行数据库间通讯,SQL执行以及事务处理都是在某个特定Connection环境中进行的。
可以产生用以执行SQL的Statement。Statement:用以执行SQL查询和更新(针对静态SQL语句和单次执行)。PreparedStatement:用以执行包含动态参数的SQL查询和更新(在服务器端编译,允许重复执行以提高效率)。CallableStatement:
用以调用数据库中的存储过程。SQLException:代表在数据库连接的建立和关闭和SQL语句的执行过程中发生了例外情况(即错误)。
java jdbc如何使用
给你看个简单的例子吧:
public class DBUtil {
/**
* 获取数据库连接
*
* @return
*/
public static Connection getConn() {
Connection con = null;
//驱动
String className = "";
//url连接路径
String url = "";
//用户名
String username = "";
//密码
String password = "";
try {
className = DBUtil.getValue("/jdbc.properties", "jdbc.driverClassName");
url = DBUtil.getValue("/jdbc.properties", "jdbc.url");
username = DBUtil.getValue("/jdbc.properties", "jdbc.username");
password = DBUtil.getValue("/jdbc.properties", "jdbc.password");
} catch (IOException e1) {
e1.printStackTrace();
}
try {
Class.forName(className);
} catch (ClassNotFoundException e1) {
e1.printStackTrace();
}
String u = url+"?user="+username+"password="+password+"useUnicode=truecharacterEncoding=UTF8";
try {
con = DriverManager.getConnection(u);
} catch (SQLException e) {
e.printStackTrace();
}
return con;
}
/**
* 关闭连接资源
*
* @param pst
* @param conn
*/
public static void getClose(PreparedStatement pst, Connection conn) {
try {
if (pst != null) {
pst.close();
}
if (conn != null) {
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
/**
* 获取jdbc配置文件内的属性值
* @param fileNamePath 配置文件路径
* @param key 字段名
* @return
* @throws IOException
*/
public static String getValue(String fileNamePath, String key)
throws IOException {
Properties props = new Properties();
InputStream in = null;
try {
// in = new FileInputStream(fileNamePath);
// 如果将in改为下面的方法,必须要将.Properties文件和此class类文件放在同一个包中
in = DBUtil.class.getResourceAsStream(fileNamePath);
props.load(in);
String value = props.getProperty(key);
// 有乱码时要进行重新编码
// new String(props.getProperty("name").getBytes("ISO-8859-1"),
// "GBK");
return value;
} catch (IOException e) {
e.printStackTrace();
return null;
} finally {
if (null != in)
in.close();
}
}
}
jdbc.properties:
jdbc.driverClassName = com.mysql.jdbc.Driver
jdbc.url = jdbc:mysql://localhost:3306/XXX
jdbc.username = XXX
jdbc.password = XXX
public class CycleTask extends TimerTask{
PreparedStatement pst = null;
ResultSet rs = null;
Connection conn = null;
@Override
public void run() {
conn = DBUtil.getConn();
StringBuffer sb = new StringBuffer();
sb.append(" INSERT INTO P_SB_TEMP(SB_ID,TEMP_SB,TEMP_HJ,REMARK,DW,ADDTIME) ");
sb.append(" VALUES(?,?,?,?,?,?) ");
try{
pst = conn.prepareStatement(sb.toString());
int index = 1;
pst.setString(index++, "1");
pst.setString(index++, "2");
pst.setString(index++, "3");
pst.setString(index++, "4");
pst.setString(index++, "5");
pst.setTimestamp(index++, new Timestamp(2011, 12, 12, 12, 12, 12, 00));
pst.execute();
}catch (SQLException e1) {
e1.printStackTrace();
}
DBUtil.getClose(pst, conn);
}
}
}
你去试试的
java中用JDBC执行语句出错
"source
d:okercn.sql"这句话是指你的
SQL语句
写在
D:\okercn.sql里面么?
prepareStatement这个方法是需要你传递你的
SQL语句
进去,你可以将你okercn.sql文件里面的语句copy出来,直接写进prepareStatement的方法里。
关于javajdbc语句和JDBC语句的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
发布于:2022-11-24,除非注明,否则均为
原创文章,转载请注明出处。