Java如何使用jdbc连接数据库

BaseDAO

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


public abstract class BaseDAO {
//获取连接对象
protected Connection getConn(){
try {
Class.forName("com.mysql.jdbc.Driver");
return DriverManager.getConnection("jdbc:mysql://localhost:3306/persondb", "root", "ok");
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
return null ;
}

//释放资源
protected void close(ResultSet rs , Statement psmt , Connection conn){
try {
if (rs != null) {
rs.close();
}
if(psmt!=null){
psmt.close();
}
if(conn!=null && !conn.isClosed()){
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}

}

PersonDAO

import java.util.List;


import com.gem.java.jdbc.pojo.Person;


public interface PersonDAO {
//添加新person
boolean addPerson(Person person);
//修改特定Person信息
boolean updatePerson(Person person);
//删除特定Person信息
boolean delPerson(int id);
//查询所有Person信息
List<Person> getPersonList();
//查询特定Person信息
Person getPerson(int id);

}

 

PersonDAOImpl

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;


import com.gem.java.jdbc.base.BaseDAO;
import com.gem.java.jdbc.dao.PersonDAO;
import com.gem.java.jdbc.pojo.Person;


public class PersonDAOImpl extends BaseDAO implements PersonDAO {


private Connection conn;
private PreparedStatement psmt;
private ResultSet rs;


@Override
public boolean addPerson(Person person) {
conn = getConn() ;
String sql = "insert into t_user values(null , ? , ? , ? ) " ;
try {
psmt = conn.prepareStatement(sql);
psmt.setString(1, person.getPname());
psmt.setInt(2, person.getAge());
psmt.setString(3, person.getAddress());

return psmt.executeUpdate() > 0 ; 
} catch (SQLException e) {
e.printStackTrace();
}finally{
close(rs, psmt, conn);
}
return false;
}


@Override
public boolean updatePerson(Person person) {
conn = getConn() ;
String sql = "update t_user set pname = ? , age = ? , address = ? where id = ? " ;
try {
psmt = conn.prepareStatement(sql);
psmt.setString(1, person.getPname());
psmt.setInt(2, person.getAge());
psmt.setString(3, person.getAddress());
psmt.setInt(4, person.getId());

return psmt.executeUpdate()>0;
} catch (SQLException e) {
e.printStackTrace();
}finally{
close(rs, psmt, conn);
}
return false;
}


@Override
public boolean delPerson(int id) {
conn = getConn() ;
String sql = "delete from t_user where id = ? " ;
try {
psmt = conn.prepareStatement(sql);
psmt.setInt(1, id);

return psmt.executeUpdate() > 0 ;
} catch (SQLException e) {
e.printStackTrace();
}finally{
close(rs, psmt, conn);
}

return false;
}


@Override
public List<Person> getPersonList() {
List<Person> personList = new ArrayList<Person>();
conn = getConn() ;
String sql = "select * from t_user" ;
try {
psmt = conn.prepareStatement(sql);
rs = psmt.executeQuery();
while(rs.next()){
int id = rs.getInt(1);
String pname = rs.getString(2);
int age = rs.getInt(3);
String address = rs.getString(4);

Person person = new Person(id, pname, age, address);
personList.add(person);
}
} catch (SQLException e) {
e.printStackTrace();
}finally{
close(rs, psmt, conn);
}
return personList;
}


@Override
public Person getPerson(int id) {
conn = getConn() ;
String sql = "select * from t_user where id = ? " ;
try {
psmt = conn.prepareStatement(sql);
psmt.setInt(1, id);
rs = psmt.executeQuery();
if(rs.next()){
String pname = rs.getString(2);
int age= rs.getInt(3);
String address = rs.getString(4);
return new Person(id , pname , age , address ) ;
}
} catch (SQLException e) {
e.printStackTrace();
}finally{
close(rs, psmt, conn);
}
return null;
}

 

}

 

Person

public class Person {
private int id;
private String pname;
private int age;
private String address;


public Person() {
}


public Person(String pname, int age, String address) {
super();
this.pname = pname;
this.age = age;
this.address = address;
}


public Person(int id, String pname, int age, String address) {
super();
this.id = id;
this.pname = pname;
this.age = age;
this.address = address;
}


public int getId() {
return id;
}


public void setId(int id) {
this.id = id;
}


public String getPname() {
return pname;
}


public void setPname(String pname) {
this.pname = pname;
}


public int getAge() {
return age;
}


public void setAge(int age) {
this.age = age;
}


public String getAddress() {
return address;
}


public void setAddress(String address) {
this.address = address;
}


@Override
public String toString() {
return "Person [id=" + id + ", pname=" + pname + ", age=" + age
+ ", address=" + address + "]";
}

 

}

 

PersonDAOTest

import com.gem.java.jdbc.dao.PersonDAO;
import com.gem.java.jdbc.dao.impl.PersonDAOImpl;
import com.gem.java.jdbc.pojo.Person;


import junit.framework.TestCase;


public class PersonDAOTest extends TestCase {

PersonDAO personDAO = new PersonDAOImpl();

public void testAddPerson() {
Person person = new Person("小龙女",18,"古墓");
boolean flag = personDAO.addPerson(person);
assertTrue(flag);
}



}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用Java中的JDBC连接数据库,首先需要准备好相关的工具和配置。可以参考以下步骤: 1. 引用所提供的第一份文献介绍了使用JDBC连接数据库的工具类和示例代码,可以作为参考。 2. 需要在项目中添加MySQL的JDBC驱动程序依赖。可以使用Maven等构建工具,在项目的pom.xml文件中添加以下依赖项: ```xml <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.37</version> </dependency> ``` 3. 注册MySQL的JDBC驱动程序。可以使用以下代码中的任意一种方式注册驱动程序: ```java Class.forName("com.mysql.jdbc.Driver"); ``` 或者 ```java System.setProperty("jdbc.drivers", "com.mysql.jdbc.Driver"); ``` 4. 连接到MySQL数据库。需要提供数据库的URL、用户名和密码。可以使用以下代码创建数据库连接: ```java private static final String DB_URL = "jdbc:mysql://localhost:3306/test"; private static final String USER = "root"; private static final String PASS = "123456"; private Connection conn = DriverManager.getConnection(DB_URL, USER, PASS); ``` 注意,以上代码中的DB_URL、USER和PASS需要根据实际情况进行修改。 5. 现在可以通过创建Statement或PreparedStatement对象来执行SQL语句并与数据库进行交互。 这些步骤可以帮助您使用Java中的JDBC连接到MySQL数据库。希望对您有所帮助!<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [java使用jdbc连接数据库工具类和jdbc连接mysql数据示例](https://download.csdn.net/download/weixin_38502929/12810866)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [Java使用JDBC连接数据库](https://blog.csdn.net/qq_27870421/article/details/87958738)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [Java-JDBC连接数据库](https://blog.csdn.net/rbx508780/article/details/127285877)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值