您的位置:首页 > 编程语言 > Java开发

java jdbc笔记整理

2015-10-18 11:17 423 查看
以前在公司直接用到的关于数据库方面的都是用ibatis,现在先来学些jdbc编程,顺便比较一下与ibatis框架的区别。

一,使用步骤:

1,加载驱动。

Class.forName(“com.mysql.jdbj.Driver”);

2,使用DriverManager获取数据库连接。url写法:jdbc:subprotocol,other stuff。如mysql: jdbc:mysql://hostname:port/databasename

Connection conn = DriverManager.getConnection(url,user,pass);

3,使用Connection来创建一个Statement对象。

Statement stmt = conn.createStatement();

4.1,使用statement执行SQL语句。Statement有三种执行SQL语句的方法:

1)execute()可执行select任何SQL语句——返回一个boolean值。

2)executeQuery()执行select语句——返回查询到的结果集。

3)executeUpdate()用于执行DML语句,返回一个整数代表被SQL渔具影响的记录条数。

ResultSet rs = stmt.executeQuery(sql);

4.2使用preparedStatement执行SQL语句。

如果需要经常反复执行一条结构相似的渔具,可以使用带占位符(?)参数的SQL语句来代替它。使用PreparedStatement接口。在设置的使用可以用setXxx(int index,Xxx value)的方法来传入参数值。

例子:

import java.io.FileInputStream;

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.PreparedStatement;

import java.sql.Statement;

import java.util.Properties;

public class ConnMysql {

private String driver;

private String url;

private String user;

private String pass;

private void initParam(String paramFile) throws Exception{

Properties props = new Properties();

props.load(new FileInputStream(paramFile));

driver = props.getProperty("driver");

url = props.getProperty("url");

user = props.getProperty("user");

pass = props.getProperty("pass");

}

public static void main(String[] args) throws Exception {

ConnMysql ed = new ConnMysql();

ed.initParam("mysql.ini");

Class.forName(ed.driver);

try(

Connection conn = DriverManager.getConnection(ed.url,ed.user,ed.pass);

Statement stmt = conn.createStatement();

PreparedStatement pstmt = conn.prepareStatement("insert into s1 values(?,?)");

)

{

for(int i = 0; i < 100; i++){

pstmt.setInt(1, i+5);

pstmt.setInt(2,i);

pstmt.executeUpdate();

}

}

}

}

5,可以使用mysql.ini配置文件代替driver,url,user,pass的值。这个文件要把它移进工程。而不是移进src目录下面。

6,使用try(){}

从 Java 7 build 105 版本开始,Java 7 的编译器和运行环境支持新的 try-with-resources 语句,称为 ARM 块(Automatic Resource Management) ,自动资源管理。

数据流会在 try 执行完毕后自动被关闭,前提是,这些可关闭的资源必须实现 java.lang.AutoCloseable 接口。

二, 比较statement和preparedStatement的。

1,PreparedStatement预编译SQL语句,性能更好。

2,PreparedStatement无须“拼接”SQL语句,编程更简单。

3,PreparedStatement可以防止SQL语句注入。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: