Dao模式是Java面向设计时的一种模式。而Dao中的BaseDao无非是对数据进行CURD(增删改查),下面列出两种常用的连接,增删改的方法。
情况一:
mport java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class BaseDao {
private final String DRIVER="com.microsoft.sqlserver.jdbc.SQLServerDriver";
private final String URL= "jdbc:sqlserver://localhost:1433;databaseName=MyJava";
private final String USERNAME = "sa";
private final String PWD = "sa";
private Connection connection;
private PreparedStatement ps;
protected ResultSet rs;
public void getConnection(){
try {
Class.forName(DRIVER);
// 2在网络中查找数据库,创建连接对象
connection = DriverManager.getConnection(
URL, USERNAME,PWD);
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//return connection;
}
public void closeAll(){
try {
// 释放资源
if (rs != null)
rs.close();
if (ps != null)
ps.close();
if (connection != null)
connection.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**
* 查询
* @param sql
* @param params
*/
public void executeQuery(String sql , Object[] params){
try {
getConnection();
ps = connection.prepareStatement(sql);
if(params!= null){
for (int i = 0; i < params.length; i++) {
ps.setObject(i+1, params[i]);
}
}
rs = ps.executeQuery();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**
* 查询
* @param sql
* @param params
*/
public void executeQuery1(String sql , Object... params){
try {
getConnection();
ps = connection.prepareStatement(sql);
if(params!= null){
for (int i = 0; i < params.length; i++) {
ps.setObject(i+1, params[i]);
}
}
rs = ps.executeQuery();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**
* 增、删、改
* @param sql
* @param params
* @return
*/
public int executeUpdate(String sql , Object[] params){
int result = -1;
try {
getConnection();
ps = connection.prepareStatement(sql);
if(params!= null){
for (int i = 0; i < params.length; i++) {
ps.setObject(i+1, params[i]);
}
}
result= ps.executeUpdate();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
this.closeAll();
}
return result;
}
/**
* 增、删、改
* @param sql
* @param params
* @return
*/
public int executeUpdate1(String sql , Object... params){
int result = -1;
try {
getConnection();
ps = connection.prepareStatement(sql);
if(params!= null){
for (int i = 0; i < params.length; i++) {
ps.setObject(i+1, params[i]);
}
}
result= ps.executeUpdate();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
this.closeAll();
}
return result;
}
}
情况二:
package dao;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class BaseDao1 {
private final String DRIVER="com.microsoft.sqlserver.jdbc.SQLServerDriver";
private final String URL= "jdbc:sqlserver://localhost:1433;databaseName=MyJava";
private final String USERNAME = "sa";
private final String PWD = "sa";
protected Connection connection;
protected PreparedStatement ps;
public Connection getConnection(){
try {
Class.forName(DRIVER);
// 2在网络中查找数据库,创建连接对象
connection = DriverManager.getConnection(
URL, USERNAME,PWD);
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return connection;
}
public void closeAll(ResultSet rs, PreparedStatement ps, Connection conn ){
try {
// 释放资源
if (rs != null)
rs.close();
if (ps != null)
ps.close();
if (conn != null)
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public ResultSet executeQuery(String sql , Object[] params){
ResultSet rs = null;
try {
getConnection();
ps = connection.prepareStatement(sql);
if(params!= null){
for (int i = 0; i < params.length; i++) {
ps.setObject(i+1, params[i]);
}
}
rs = ps.executeQuery();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return rs;
}
/**
* 增、删、改
* @param sql
* @param params
* @return
*/
public int executeUpdate1(String sql , Object... params){
int result = -1;
try {
getConnection();
ps = connection.prepareStatement(sql);
if(params!= null){
for (int i = 0; i < params.length; i++) {
ps.setObject(i+1, params[i]);
}
}
result= ps.executeUpdate();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
this.closeAll(null,ps,connection);
}
return result;
}
}
以上两种方法都只是以个人风格而使用。这只是最基本的代码了。oK。每天至少一个知识点到此。