JDBC连接数据库
JDBC一般指Java数据库连接。Java数据库连接,(Java Database Connectivity,简称JDBC)
连接数据库操作
创建maven项目,并添加jdbc依赖库,修改pom.xml文件
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.22</version>
</dependency>
JDBC连接代码
import java.sql.*;
import java.util.ArrayList;
import java.util.List;
public class cityDAO {
private Connection con;
private PreparedStatement pstm;
private ResultSet rs;
private String sql;
//数据库连接功能
private void init(String sql,Object...objs) throws SQLException, ClassNotFoundException {
/**
*注意:根据数据库的版本不同,语句是不同的,例如mysql5.6版本的 Class.forName("com.mysql.jdbc.Driver");
而mysql8版本就是 Class.forName("com.mysql.cj.jdbc.Driver");
*/
Class.forName("com.mysql.cj.jdbc.Driver");
//根据每个人连接的数据库不同,我在括号中标注出需要改的两处地方
con= DriverManager.getConnection("jdbc:mysql:/**/192.168.1.xx**(你要连接的数据库所在机器的ip):3306/**mydb**(数据库的名)? useSSL=false&useUnicode=true&characterEncoding=UTF8&serverTimezone=GMT","root","123456");
pstm=con.prepareStatement(sql);
if(objs!=null){
for (int i = 0; i <objs.length ; i++) {
pstm.setObject(i+1,objs[i]);
}
}
}
//数据库关闭功能
private void mclose(){
try {
if(rs!=null){rs.close();}
if(pstm!=null){pstm.close();}
if(con!=null){con.close();}
} catch ( SQLException e) {
e.printStackTrace();
}
}
//写的一个查找功能
public List<Pro> findProv(){
sql="select * from tprov";
List<Pro> pli= null;
try {
init(sql);
rs=pstm.executeQuery();
pli = new ArrayList<> ();
while (rs.next()){
Pro pv=new Pro();
pv.setPid(rs.getInt(1));
pv.setPname(rs.getString(2));
pli.add(pv);
}
} catch (SQLException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} finally {
mclose();
}
return pli;
}
//插入功能
public int savecity (City city){
sql="insert into tcity values(null,?,?) ";
int res=0;
try {
init(sql,city.getCname(),city.getPro().getPid());
res=pstm.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} finally {
mclose();
}
return res;
}
//查找功能
public Pro findByID(int pid){
sql="select * from tprov where pid=?";
Pro pv=null;
try {
init(sql,pid);
rs=pstm.executeQuery();
if(rs.next()){
pv=new Pro();
pv.setPid(rs.getInt(1));
pv.setPname(rs.getString(2));
}
} catch (SQLException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} finally {
mclose();
}
return pv;
}
}