先回憶下Jdbc的使用:
package testxs;
//STEP 1. 導入sql相關的包
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
public class JdbcDemo {
static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";
static final String DB_URL = "jdbc:mysql://localhost:3306/mybatis?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true";
// Database credentials
static final String USER = "root";
static final String PASS = "root";
public void QueryStatementDemo() {
Connection conn = null;
Statement stmt = null;
List<TUser> users = new ArrayList<>();
try {
// STEP 2: 註冊mysql的驅動
Class.forName(JDBC_DRIVER);
// STEP 3: 獲得一個連接
System.out.println("Connecting to database...");
conn = DriverManager.getConnection(DB_URL, USER, PASS);
// STEP 4: 創建一個查詢
System.out.println("Creating statement...");
stmt = conn.createStatement();
String userName = "lison";
String sql="SELECT * FROM t_user where user_name='"+userName+"'";
ResultSet rs = stmt.executeQuery(sql);
System.out.println(stmt.toString());
// STEP 5: 從resultSet中獲取數據並轉化成bean
while (rs.next()) {
System.out.println("------------------------------");
// Retrieve by column name
TUser user = new TUser();
// user.setId(rs.getInt("id"));
user.setRealName(rs.getString("real_name"));
user.setSex(rs.getByte("sex"));
user.setMobile(rs.getString("mobile"));
user.setEmail(rs.getString("email"));
user.setNote(rs.getString("note"));
System.out.println(user.toString());
users.add(user);
}
// STEP 6: 關閉連接
rs.close();
stmt.close();
conn.close();
} catch (SQLException se) {
// Handle errors for JDBC
se.printStackTrace();
} catch (Exception e) {
// Handle errors for Class.forName
e.printStackTrace();
} finally {
// finally block used to close resources
try {
if (stmt != null)
stmt.close();
} catch (SQLException se2) {
}// nothing we can do
try {
if (conn != null)
conn.close();
} catch (SQLException se) {
se.printStackTrace();
}
}
System.out.println("-------------------------");
System.out.println("there are "+users.size()+" users in the list!");
}
public void QueryPreparedStatementDemo() {
Connection conn = null;
PreparedStatement stmt = null;
List<TUser> users = new ArrayList<>();
try {
// STEP 2: 註冊mysql的驅動
Class.forName(JDBC_DRIVER);
// STEP 3: 獲得一個連接
System.out.println("Connecting to database...");
conn = DriverManager.getConnection(DB_URL, USER, PASS);
// STEP 4: 創建一個查詢
System.out.println("Creating statement...");
String sql;
sql = "SELECT * FROM t_user where user_name= ? ";
stmt = conn.prepareStatement(sql);
stmt.setString(1, "lison");
System.out.println(stmt.toString());//打印sql
ResultSet rs = stmt.executeQuery();
// STEP 5: 從resultSet中獲取數據並轉化成bean
while (rs.next()) {
System.out.println("------------------------------");
// Retrieve by column name
TUser user = new TUser();
// user.setId(rs.getInt("id"));
user.setRealName(rs.getString("real_name"));
user.setSex(rs.getByte("sex"));
user.setMobile(rs.getString("mobile"));
user.setEmail(rs.getString("email"));
user.setNote(rs.getString("note"));
System.out.println(user.toString());
users.add(user);
}
// STEP 6: 關閉連接
rs.close();
stmt.close();
conn.close();
} catch (SQLException se) {
// Handle errors for JDBC
se.printStackTrace();
} catch (Exception e) {
// Handle errors for Class.forName
e.printStackTrace();
} finally {
// finally block used to close resources
try {
if (stmt != null)
stmt.close();
} catch (SQLException se2) {
}// nothing we can do
try {
if (conn != null)
conn.close();
} catch (SQLException se) {
se.printStackTrace();
}
}
System.out.println("-------------------------");
System.out.println("there are "+users.size()+" users in the list!");
}
public void updateDemo(){
Connection conn = null;
PreparedStatement stmt = null;
try {
// STEP 2: 註冊mysql的驅動
Class.forName(JDBC_DRIVER);
// STEP 3: 獲得一個連接
System.out.println("Connecting to database...");
conn = DriverManager.getConnection(DB_URL, USER, PASS);
// STEP 4: 啓動手動提交
conn.setAutoCommit(false);
// STEP 5: 創建一個更新
System.out.println("Creating statement...");
String sql = "update t_user set mobile= ? where user_name= ? ";
stmt = conn.prepareStatement(sql);
stmt.setString(1, "186995587411");
stmt.setString(2, "lison");
System.out.println(stmt.toString());//打印sql
int ret = stmt.executeUpdate();
System.out.println("此次修改影響數據庫的行數爲:"+ret);
// STEP 6: 手動提交數據
conn.commit();
// STEP 7: 關閉連接
stmt.close();
conn.close();
} catch (SQLException se) {
// Handle errors for JDBC
try {
conn.rollback();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
se.printStackTrace();
} catch (Exception e) {
try {
conn.rollback();
} catch (SQLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
e.printStackTrace();
} finally {
// finally block used to close resources
try {
if (stmt != null)
stmt.close();
} catch (SQLException se2) {
}// nothing we can do
try {
if (conn != null)
conn.close();
} catch (SQLException se) {
se.printStackTrace();
}
}
}
}