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

JDBC基础编程总结

2015-08-23 15:34 260 查看

     在聊天室和论坛web开发中都会用到数据库来保存用户的相关信息, 所以JDBC就成了不可或缺的环节。下面对JDBC中对数据的简单增、删、改、查 进行一下总结。

     JDBC编程的第一步就是连接数据库。这里需要先导入一个sql包(附件中是连接mysql的文件包)。接下来就是在java代码中实现与数据库的连接。

public static Connection getConnection(){
Connection con = null ;
try {
Class.forName("com.mysql.jdbc.Driver");
con = DriverManager.getConnection("jdbc:mysql://localhost:3306/learning","root"," ");
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return con;
}

 

需要说明的是 Class.forName();中传入的是Driver类在包中的位置,具体参数应该有导入的jar来定。而在DriverManager.getConnection()中传入的三个参数分别是database的url、账号(如果数据库中只有一个默认用户,那么就是root) 和访问密码。其中URL中的learning是指使用的数据库(因为笔者尚在学习阶段,就直接取learning)。

 

     接下来就是对数据库中的数据进行访问了。主要会用到三个类:Statement (用于获取数据库中的数据)、PrepareStatement类(一般用于对数据库中的数据进行操作),ResultSet类(数据库返回数据的封装类)。

    获取数据库中数据代码:

private static String sql = "select * from tbl_user";//对数据库的操作指令,与mysql语句相同
public static void showRes(){
Connection con = getConnection();
try {
Statement sta  = con.createStatement();
ResultSet res = sta.executeQuery(sql);//executeQuery会返回一个set集合,封装有数据库中的数据
while (res.next()){
System.out.print("id="+res.getInt("id"));
System.out.print("  name="+res.getString("name"));
System.out.print("  email="+res.getString("email"));
System.out.println();
}
con.close();//关闭连接
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}

 插入(添加)数据库中数据的方法:

private static String insert = "insert into tbl_user (name,password,email) "+
"values (?,?,?)";
/**
* 向数据库中插入一条语句的方法
* @param name 插入语句的名称
* @param password 插入语句的账号
* @param email 插入语句的Email
* @throws SQLException
*/
public static void insertMes(Connection con,String name,String password,String email) throws SQLException{
java.sql.PreparedStatement ps = con.prepareStatement(insert);
ps.setString(1, name);
ps.setString(2, password);
ps.setString(3, email);

int num = ps.executeUpdate();
System.out.println("插入了"+num+" 条语句");
}

 在sql指令insert中出现了‘?’。这是一个占位符,可以是sql语句更具有通用性。后面的ps.setString()代码便是对这三个占位符表示的数据进行设置(如果是int型的数据,这调用setInt方法,以此类推)。

  修改和删除数据的代码和插入类似,只需用修改sql语句就行了。

private static String insertAddre = "insert into tbl_adress (id,city,country,user_id) "+
"values (?,?,?,?)";
/**
* 向地址表中添加一条记录
* @param city
* @param country
* @param user_id
* @throws SQLException
*/
private static void insertAddre(Connection con,int id,String city,String country,String user_id) throws SQLException{
java.sql.PreparedStatement ps = con.prepareStatement(insertAddre);
ps.setInt(1, id);
ps.setString(2, city);
ps.setString(3, country);
ps.setString(4, user_id);

int num = ps.executeUpdate();
System.out.println("插入了"+num+" 条语句");
}

 

private static String delete = "delete from tbl_user where name=?&&password=?";
/**
* 删除数据库中的一天数 据
* @param name 删除数据的名称
* @param password 删除数据的密码
*/
private static void deleteMes(String name,String password){
Connection con = getConnection();
try {
java.sql.PreparedStatement ps = con.prepareStatement(delete);
ps.setString(1, name);
ps.setString(2, password);

int num = ps.executeUpdate();
System.out.println("删除了"+num+" 条语句");

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

 

 

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