您的位置:首页 > 数据库

利用JDBC完成数据库的CRUD

2015-09-13 15:52 513 查看
利用JDBC完成数据库的CRUD

----------------------------------------------------------------------------------------------------

src下面创建一个文件: dbinfo.properties

className=com.mysql.jdbc.Driver

url=jdbc:mysql://localhost:3306/day14

user=root

password=123456

----------------------------------------------------------------------------------------------------

public class JdbcUtil {

private static String className;

private static String url;

private static String user;

private static String password;

static{

try {

// 使用类加载器读取配置文件中的信息

InputStream in = JdbcUtil.class.getClassLoader().getResourceAsStream("dbinfo.properties");

Properties props = new Properties();

props.load(in);

className = props.getProperty("className");

url = props.getProperty("url");

user = props.getProperty("user");

password = props.getProperty("password");

Class.forName(className);

} catch (Exception e) {

e.printStackTrace();

}

}

public static Connection getConnection() throws Exception{

return DriverManager.getConnection(url,user,password);

}

public static void release(ResultSet rs,Statement stmt,Connection conn){

if(rs!=null){

try{

rs.close();

}catch(SQLException e){

e.printStackTrace();

}

rs = null;

}

if(stmt!=null){

try{

stmt.close();

}catch(SQLException e){

e.printStackTrace();

}

stmt = null;

}

if(conn!=null){

try{

conn.close();

}catch(SQLException e){

e.printStackTrace();

}

conn = null;

}

}

}

----------------------------------------------------------------------------------------------------

/**

create table users(

id int primary key auto_increment,

name varchar(40),

password varchar(40),

email varchar(60),

birthday date

);

insert into users(name,password,email,birthday) values('zs','123456','zs@sina.com','1980-12-04');

insert into users(name,password,email,birthday) values('lisi','123456','lisi@sina.com','1981-12-04');

insert into users(name,password,email,birthday) values('wangwu','123456','wangwu@sina.com','1979-12-04');

*/

// 注: 配置文件中操作的是day14的数据库中的users表格中的数据

----------------------------------------------------------------------------------------------------

public class JdbcCRUD {

@Test

public void add(){

Connection conn = null;

Statement stmt = null;

ResultSet rs = null;

try{

conn = JdbcUtil.getConnection();

stmt = conn.createStatement();

int i = stmt.executeUpdate("insert into users(name,password,email,birthday)

values('gfy','123456','gfy@sina.com','2015-08-07')");

Assert.assertEquals(1, i);

}catch(Exception e){

throw new RuntimeException(e);

}finally{

JdbcUtil.release(rs, stmt, conn);

}

}

@Test

public void update(){

Connection conn = null;

Statement stmt = null;

ResultSet rs = null;

try{

conn = JdbcUtil.getConnection();

stmt = conn.createStatement();

int i = stmt.executeUpdate("update users set password='000' where name='gfy'");

Assert.assertEquals(4, i);

}catch(Exception e){

throw new RuntimeException(e);

}finally{

JdbcUtil.release(rs, stmt, conn);

}

}

@Test

public void queryOne(){

Connection conn = null;

Statement stmt = null;

ResultSet rs = null;

try{

conn = JdbcUtil.getConnection();

stmt = conn.createStatement();

rs = stmt.executeQuery("select * from users where name='gfy'");

if(rs.next()){

System.out.println(rs.getString("name"));

System.out.println(rs.getString("email"));

}

}catch(Exception e){

throw new RuntimeException(e);

}finally{

JdbcUtil.release(rs, stmt, conn);

}

}

@Test

public void queryAll(){

Connection conn = null;

Statement stmt = null;

ResultSet rs = null;

try{

conn = JdbcUtil.getConnection();

stmt = conn.createStatement();

rs = stmt.executeQuery("select * from users");

while(rs.next()){

System.out.println(rs.getString("name"));

System.out.println(rs.getString("email"));

}

}catch(Exception e){

throw new RuntimeException(e);

}finally{

JdbcUtil.release(rs, stmt, conn);

}

}

@Test

public void delete(){

Connection conn = null;

Statement stmt = null;

ResultSet rs = null;

try{

conn = JdbcUtil.getConnection();

stmt = conn.createStatement();

int i = stmt.executeUpdate("delete from users where name='gfy'");

Assert.assertEquals(4, i);

}catch(Exception e){

throw new RuntimeException(e);

}finally{

JdbcUtil.release(rs, stmt, conn);

}

}

}

----------------------------------------------------------------------------------------------------
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: