1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
Connection conn = null
Statement st = null
try {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver")//加载驱动类
conn = DriverManager.getConnection("jdbc:microsoft:sqlserver://<server_name>:<1433>", "name","pwd")
conn.setAutoCommit(false)
st = conn.createStatement()
// 模拟一个 str[i] = nd.getNodeValue().trim()
String[] str = new String[] { "aaa", "bbb", "ccc", "ddd", "eee","fff" }
String sqlStr = null
for (int i = 0i <str.lengthi++) {
sqlStr = "INSERT INTO <TABLENAME>(<COLNAME>)VALUES('" + str[i] + "')"//向数据库中插入数据
st.executeUpdate(sqlStr)
}
conn.commit()
} catch (Exception e) {
e.printStackTrace()
} finally {//释放数据库的资源
try {
if (st != null)
st.close()
if(conn != null &&!conn.isClosed()){
conn.close()
}
} catch (SQLException e) {
e.printStackTrace()
}
}
package com.example.MyClassimport java.sql.Connection
import java.sql.DriverManager
import java.sql.PreparedStatement
import java.sql.ResultSet
import java.sql.SQLException
//新建一个java类把公有的东西都抽出来,方便扩展节省代码。==20130120又练习的。
public class MyJdbc {
// 拿到连接的对象。
public Connection getConnection() {
// String driver =
// "com.mysql.jdbc.Driver"//因为现在不需要forClass映射驱动了,所以这个也可不要了。
String url = "jdbc:mysql://localhost:3306/mysql0120"// 数据库名mysql0120
String user = "root"// 数据库登陆用户
String password = "root2"// 数据库登陆密码
Connection con = null
try {
con = DriverManager.getConnection(url, user, password)// 那四句加这句就行了。
} catch (SQLException e) {
e.printStackTrace()
}
return con// 调这个方法就返回一个连接
}
// insert delete update===========-=-==增加,删除,更改都用这个通用方法=================
// 直接把sql语句和需要的参数(因为多个,所以用数组存)传过来。
public int update(String sql, Object[] parms) {
int row = 0
Connection con = this.getConnection()
PreparedStatement ps = null
try {
ps = con.prepareStatement(sql)
if (parms != null) {
for (int i = 0i <parms.lengthi++) {
ps.setObject(i + 1, parms[i])// 注意是i+1【从第一行算的】
}
}
row = ps.executeUpdate()// 返回影响的行数
} catch (SQLException e) {
e.printStackTrace()
} finally {
this.closeAll(con, ps, null)// 这不是查询【所以结果集是null】。
}
return row
}
// 所有关闭也是一样的,所以通用这个关闭方法。===-==========关闭==========
public void closeAll(Connection con, PreparedStatement ps, ResultSet rs) {
try {
if (rs != null)
rs.close()
if (ps != null)
ps.close()
if (con != null)
con.close()
} catch (SQLException e) {
e.printStackTrace()
}
}
}
上代码!!!import java.sql.Connectionimport java.sql.DriverManager
import java.sql.SQLException
import java.sql.Statement
public class SqlTest {
public static void main(String[] args) {
Connection conn = null
Statement stmt = null
try {
// ①
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver")
} catch (ClassNotFoundException ex) {
ex.printStackTrace()
}
try {
String url = "jdbc:sqlserver://localhost:1433"
String databaseName = "testuser=sapassword=sa "
// ②
conn = DriverManager.getConnection(url+databaseName)
stmt = conn.createStatement()
// ③
int num = stmt.executeUpdate("insert into users values(‘zhangsan’,’123’)")
} catch (SQLException ex1) {
ex1.printStackTrace()
// ④
} finally {
try {
stmt.close()
conn.close()//
} catch (SQLException ex2) {
ex2.printStackTrace()
}
}
}
}
另外 值得一提的是,题目中的几处错误,在我提供的代码中已做修改
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)