//然后再eclipse中创建类(ConnDb,Test,TestBean)ConnDb功能为连接数据库,查询,插入,删除,修改数据的类,Test为含有main方法的测试类,TestBean为数据表中的字段属性及set,get方法
//以下是ConnDb代码:
package db
import java.sql.Connection
import java.sql.DriverManager
import
java.sql.ResultSet
import java.sql.SQLException
import
java.sql.Statement
import java.util.ArrayList
public class ConnDb {
public Connection startConn(Connection conn){
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver")
conn = DriverManager.getConnection("jdbc:odbc:数据库","用户名", "密码")
} catch (Exception e) {
System.out.println("连接数据库时出现错误")
}
return conn
}
public ArrayList executeQuery(String sql){
Connection conn = null
Statement stmt = null
ResultSet rs = null
ArrayList list = new ArrayList()
try {
conn = startConn(conn)
stmt = conn.createStatement()
rs = stmt.executeQuery(sql)//sql为sql语句例如"select * from
表名",从main方法中传进来,这里用的是ArrayList 类将查询结果存储起来
while(rs.next()){
TestBean tb = new TestBean()
tb.setTid(rs.getString("tid"))
tb.setTname(rs.getString("tname"))
tb.setTinfo(rs.getString("tinfo"))
list.add(tb)
}
}
catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace()
}finally{
closeConn(rs,stmt,conn)
}
return list
}
public void executeUpdate(String sql){
Connection conn = null
Statement stmt = null
try {
conn =
startConn(conn)
stmt = conn.createStatement()
stmt.executeUpdate(sql)
}
catch (SQLException e) {
System.out.println("修改,插入或者删除数据库数据时发生错误!")
}finally{
closeConn(stmt,conn)
}
}
public void closeConn(ResultSet rs,Statement stmt,Connection conn){
try {
if(rs !=
null){
rs.close()
}
if(stmt != null){
stmt.close()
}
if(conn != null){
conn.close()
}
}
catch (SQLException e) {
// TODO Auto-generated catch
block
System.out.println("关闭数据库的时候发生错误!")
}
}
public void closeConn(Statement stmt,Connection conn){
try {
if(stmt != null){
stmt.close()
}
if(conn != null){
conn.close()
}
}
catch (SQLException e) {
// TODO Auto-generated catch block
System.out.println("关闭数据库的时候发生错误!")
}
}
}
是代码输入错误造成的,解决方法如下:
1、需要重新配置数据库,首找到数据库安装目录下的MySQLInstanceConfig.exe,双击打开。
2、打开之后,前面步骤默认就行,到了图片所示的地方,修改字符集为utf-8。
3、然后点击下一步,如下图所示。
4、最后重启数据库。在代码中连接数据库部分加上?characterEncoding=utf8,这样问题就解决了。
1.提取单条记录//import java.sql.*
Connection conn=null
Statement stmt=null
ResultSet rs=null
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver")
String url="jdbc:odbc:%%1"
con=DriverManager.getConnection(url,%%2,%%3)
stmt=conn.createStatement()
stmt.executeUpdate(%%4)
rs=stmt.executeQuery(%%5)
}catch(Exception e){
e.printStackTrace()
}
finally{
try {
if(rs!=null)
rs.close()
if(stmt!=null)
stmt.close()
if(conn!=null)
conn.close()
} catch (SQLException e) {
e.printStackTrace()
}
}
3.显示表格
/*
import java.awt.*
import javax.swing.*
import java.sql.*
import javax.swing.table.*
*/
String[] colHeads=%%4
Connection conn=null
Statement stmt=null
ResultSet rs=null
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver")
String url="jdbc:odbc:%%1"
conn=DriverManager.getConnection(url,%%2,%%3)
stmt=conn.createStatement()
rs=stmt.executeQuery("SELECT count(*) as au_count from "+%%5)
rs.next()
int iCount=rs.getInt("au_count")
Object[][] data=new Object[iCount][]
int i=0
rs=stmt.executeQuery("SELECT * from "+%%5)
while(rs.next()){
data[i]=new Object[iCount]
data[i][0]=rs.getString("au_fname")
data[i][1]=rs.getString("Phone")
data[i][2]=rs.getString("City")
i++
}
JTable table=new JTable(data,colHeads)
JScrollPane jsp=new JScrollPane(table)
getContentPane().add(jsp)
}catch(Exception e){
e.printStackTrace()
}
finally{
try {
if(rs!=null)
rs.close()
if(stmt!=null)
stmt.close()
if(conn!=null)
conn.close()
} catch (SQLException e) {
e.printStackTrace()
}
}
6.关闭时关闭连接
//import java.sql.*
addWindowListener(new WindowAdapter{
public void windowClosing(WindowEvent wevent){
if(stmt!=null){
try {
if(rs!=null)
rs.close()
if(stmt!=null)
stmt.close()
if(conn!=null)
conn.close()
} catch (SQLException e) {
e.printStackTrace()
}
}
7.执行命令
//import java.sql.*
Connection conn=null
PreparedStatement pst=null
try {
conn=DriverManager.getConnection(url)
pst=conn.prepareStatement("Insert Into grade(%%1) Values (?)")
pst.setInt(1,%%2)
//pst.setString(2,%%2)
pst.addBatch()
pst.executeBatch()
} catch (SQLException e){
e.printStackTrace()
}
finally{
try {
if (pst != null)
pst.close()
if (conn != null)
conn.close()
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace()
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)