java jdbc笔记整理

以前在公司直接用到的关于数据库方面的都是用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语句注入。

 

posted @ 2015-10-18 11:17  嵌—韬少  阅读(183)  评论(0编辑  收藏  举报