JDBC小例子

现在开发中都使用Hibernate来进行持久化实现,今天想到JDBC,所以就有了下边的小例子。JDBC小例子 - 小黄米儿 - 小黄米儿£xhmder

使用数据库MySQL5.0

MySQL驱动jar包:mysql-connector-java-5.1.3-rc-bin.jar

1.创建表

create table person
(
p_id int not null auto_increment,
p_name varchar(50),
p_sex varchar(10),
p_address varchar(100),
primary key(p_id)
)engine=myisam default charset=gbk

2.示例代码

/**
 * JDBCTest.java
 * @author xhmder
 */
package com.xhmder.test;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

/**
 * 使用JDBC访问MySQL
 */
public class JDBCTest
{
 /**
  * @param args
  */
 public static void main(String[] args)
 {
  // TODO Auto-generated method stub

  // 变量定义
  Connection conn = null;
  Statement stmt = null;
  ResultSet rs = null;

  // 加载MySQL驱动
  try
  {
   Class.forName("com.mysql.jdbc.Driver");

  } catch (ClassNotFoundException e)
  {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }

  try
  {
   //获取数据库连接(用户名root密码abcd)
   conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=GBK","root", "abcd");

   //获取表达式
   stmt = conn.createStatement();
   
   //执行数据插入
   stmt.executeUpdate("insert into person(p_name,p_sex,p_address) values('xhmder','男','西安市')");

   //执行数据检索
   rs = stmt.executeQuery("select * from person");
   
   //显示数据
   while (rs.next())
   {
    System.out.println("******** p_id = " + rs.getString("p_id"));
    System.out.println("******** p_name = " + rs.getString("p_name"));
    System.out.println("******** p_sex = " + rs.getString("p_sex"));
    System.out.println("******** p_address = " + rs.getString("p_address"));

   }

  } catch (SQLException e)
  {
   // TODO Auto-generated catch block
   e.printStackTrace();
  } finally
  {
   //释放资源
   if (conn != null)
   {
    try
    {
     conn.close();
    } catch (SQLException e)
    {
     // TODO Auto-generated catch block
     e.printStackTrace();
    }
   }
   if (stmt != null)
   {
    try
    {
     stmt.close();
    } catch (SQLException e)
    {
     // TODO Auto-generated catch block
     e.printStackTrace();
    }
   }
   if (rs != null)
   {
    try
    {
     rs.close();
    } catch (SQLException e)
    {
     // TODO Auto-generated catch block
     e.printStackTrace();
    }
   }
  }

 }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是一个简单的Mock JDBC操作的例子: 假设我们有一个名为User的Java类,其中有一个静态方法getUserById(int id),用于从数据库中获取指定id的用户信息。我们使用Mockito框架来模拟JDBC操作。 首先,我们需要创建一个Mock对象,模拟Connection对象。这可以通过以下代码实现: Connection conn = mock(Connection.class); 然后,我们需要模拟PreparedStatement对象,该对象代表了一个预编译的SQL语句。我们可以使用以下代码创建它: PreparedStatement ps = mock(PreparedStatement.class); 接下来,我们需要设置模拟对象的行为。我们可以使用when()和thenReturn()方法来指定方法调用的返回值。例如,以下代码指定当调用PreparedStatement对象的executeQuery()方法时,返回一个模拟ResultSet对象: ResultSet rs = mock(ResultSet.class); when(ps.executeQuery()).thenReturn(rs); 最后,我们需要调用getUserById()方法,并验证其是否按预期工作。以下代码显示了如何使用模拟对象调用getUserById()方法: User user = User.getUserById(1, conn); 我们可以使用verify()方法来验证模拟对象的方法是否按预期调用。例如,以下代码验证模拟的PreparedStatement对象是否调用了setInt()方法和executeQuery()方法: verify(ps).setInt(1, 1); verify(ps).executeQuery(); 这就是一个简单的Mock JDBC操作的例子。当然,实际的JDBC操作可能会更复杂,需要更多的Mock对象和设置。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值