本篇博客主要介绍Mysql的基本增、删、查、改的操作。
1.创建数据库
在mysql中新建一个名为jdbc的数据库,并新建一个表,这里表名可以设置为test。
建好后,向其中简单的插入几行数据:
2.获取连接模块
因为获取数据库连接是经常需要使用的操作,故可将获取连接封装成一个单独的静态函数:
public static Connection getCon() throws Exception {
Class.forName("com.mysql.jdbc.Driver");
System.out.println();
String url1="jdbc:mysql://localhost:3306/jdbc";
String url2="?user=root&password=3705";
String url3="&useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT%2B8";
String url=url1+url2+url3;
System.out.println(url);
Connection conn=DriverManager.getConnection(url);
return conn;
}
3.关闭有关资源函数
同样的,由于在连接数据库并执行操作后需要及时关闭连接,故也将关闭连接及statement,ResultSet的操作封装成一个静态函数。
public static void closeCon(Connection connection,Statement stm,ResultSet resultSet){
try{
if(connection!=null)
connection.close();
if(stm!=null)
stm.close();
if(resultSet!=null)
resultSet.close();
}catch(Exception e){
e.printStackTrace();
}
}
在这里,有时可能仅仅需要关闭三个资源中的其中某一个资源,此时可将其他两个资源的形参设置为空。
4.查询操作
在上面的基础上,查询操作基本步骤如下:
1.获取数据库连接
2.写sql语句
3.获取statement对象
4.执行查询操作并获取结果集
5.处理结果集
6.关闭有关资源
具体代码设计如下:
public void query() {
Connection con=null;
ResultSet rs=null;
Statement smt=null;
try {
con=getCon();
smt=con.createStatement();
String str="select * from test";
rs=smt.executeQuery(str);
while(rs.next()){
System.out.println(rs.getString(1)+" "+rs.getString(2));
}
} catch (Exception e) {
e.printStackTrace();
}finally {
closeCon(con,smt,rs);
}
}
5.插入操作
插入操作和上述步骤类似,但在此加入要求用户输入有关数据的步骤:
public void insert(){
Connection conn=null;
ResultSet resultSet=null;
Statement smt=null;
try{
conn=getCon();
System.out.println("请输入需要输入的id:");
String str= scanner.nextLine();
String sqlstr="insert into ta values '"+str+"',''";
System.out.println("请输入用户姓名:");
String uname=scanner.nextLine();
System.out.println("请输入用户性别:");
String usex=scanner.nextLine();
if(usex.equals('男'))
usex="1";
else usex="2";
sqlstr=sqlstr+uname+"','"+usex+"';";
smt=conn.createStatement();
int inff=smt.executeUpdate(sqlstr);
if(inff>=1)
System.out.println("插入成功.");
else
System.out.println("插入失败");
}catch (Exception e){
e.printStackTrace();
}finally{
closeCon(conn,smt,null);
}
}
需要注意的是,这里的scanner在类初始化时就已经定义,同时,在函数执行完后,也不能关闭scanner,否则会导致下次使用时无法打开scanner。
6.删除操作
删除操作与插入操作相类似,过程较简单,下面直接上代码
public void delete(){
Connection conn=null;
ResultSet resultSet=null;
Statement statement=null;
try{
conn=getCon();
System.out.println("请输入需要删除的用户编号:");
String delStr=scanner.nextLine();
String str="delete from ta where id='"+delStr+"';";
statement=conn.createStatement();
int effect=statement.executeUpdate(str);
if(effect<1)
System.out.println("删除错误,可能该数据不存在.");
else
System.out.println("删除正确。");
}catch (Exception e){
e.printStackTrace();
}finally {
closeCon(conn,statement,null);
}
}