您的位置:首页 > 编程语言 > Java开发

java数据库操作

2014-11-27 14:31 302 查看
java连接数据库的几种方式以及优缺点,数据库以mysql为例



1.JDBC连接数据库

连接数据库的工具类 basedao,如果数据库保存中文乱码加上?useUnicode=true&characterEncoding=utf8这句就好了

package jdbc.dao;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
/*
* jdbc 连接数据库工具类
*/
public class BaseDao
{
// 创建静态全局变量
protected static Connection con;
protected static PreparedStatement ptmt;
protected static ResultSet rs;

/* 获取数据库连接的函数 */
public static Connection getConnection()
{
try
{
Class.forName("com.mysql.jdbc.Driver");// 加载Mysql数据驱动
con = DriverManager.getConnection("jdbc:mysql://localhost:3306/huitongsql?useUnicode=true&characterEncoding=utf8", "heytonn", "heytonn");// 创建数据连接
}
catch (Exception e)
{
System.out.println("数据库连接失败" + e.getMessage());
}
return con; // 返回所建立的数据库连接
}
</pre><pre name="code" class="java"><span style="white-space:pre">	</span>/*关闭连接*/
public static void closeAll()
{
if(rs != null)
{
try
{
rs.close();
}
catch (SQLException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if(ptmt != null)
{
try
{
ptmt.close();
}
catch (SQLException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if(con != null)
{
try
{
con.close();
}
catch (SQLException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}


DBinfodao 

保存操作和
a8d2
查询操作

public void SaveInfo(DbInfo dbInfo){
try
{
con = BaseDao.getConnection();
String sql = "insert into dbinfo(name, age, sex) values (?,?,?)";
ptmt = con.prepareStatement(sql);
ptmt.setString(1, dbInfo.getName());
ptmt.setInt(2, dbInfo.getAge());
ptmt.setString(3, dbInfo.getSex());
int num = ptmt.executeUpdate();
if(num==1){
System.out.println("插入数据成功");
}
}
catch (SQLException e)
{
System.out.println("插入数据失败" + e.getMessage());
}
finally
{
BaseDao.closeAll();
}
}

public DbInfo findbyid(int id){
DbInfo dbInfo=null;
con = getConnection();
String sql = "select * from dbinfo where id=?";
try {
ptmt = con.prepareStatement(sql);
ptmt.setInt(1, id);
rs = ptmt.executeQuery();
if(rs.next()){
dbInfo=new DbInfo();
dbInfo.setName(rs.getString("name"));
dbInfo.setAge(rs.getInt("age"));
dbInfo.setSex(rs.getString("sex"));
}
} catch (SQLException e) {
e.printStackTrace();
}
finally {
closeAll();
}
return dbInfo;
}
 

需要手动关闭Resultset, PreparedStatment , Statment, Connection等资源 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java 数据库 mysql