java中怎么向数据库插入数据 ?

java中怎么向数据库插入数据 ?,第1张

Java程序向数据中插入数据代码如下:

//首先创建数据库,(access,oracle,mysql,sqlsever)其中之一,其中access,sqlsever需要配置数据源(odbc)

//然后再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()

}

}


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/6423426.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-21
下一篇 2023-03-21

发表评论

登录后才能评论

评论列表(0条)

保存