intelliJ工具下导入mysql驱动器及操作数据库
1、java操作mysql等数据库需要先加载数据库驱动器
下载地址:https://dev.mysql.com/downloads/connector/j/5.1.html
Connector/J 表示为java使用的连接器
2、下载后解压为如下
3、使用intelliJ导入jar包
特别注意:通过IDE导入的jar包在IDE中被当做扩展库来识别,此路径在终端命令行工具中并不一定被识别,因此,编译执行代码需要在IDE中进行,在终端命令行工具中不一定可以。
4、加载驱动程序
//1、加载mysql驱动程序,IDE加载的只能在IDE使用,不能在命令行使用,会找不到驱动程序
try {
Class.forName("com.mysql.jdbc.Driver");
System.out.println("数据库驱动加载成功");
}catch (ClassNotFoundException e){
e.printStackTrace();
}
5、连接数据库
//2、连接mysql数据库
try {
con = DriverManager.getConnection("jdbc:mysql:" +"//127.0.0.1:3306/test?useSSL=false","xueyanxiang","xueyanxiang");
System.out.println("数据库连接成功");
}catch (SQLException e){
e.printStackTrace();
}
6、操作数据库
//3、创建对象操作数据库
try {
sql =con.createStatement();
System.out.println("数据库操作对象创建成功");
}catch (SQLException e){
e.printStackTrace();
}
//4、查询数据库
try {
ResultSet res =sql.executeQuery("select * from persion");
while (res.next()){
String id = res.getString("id");
String name = res.getString("name");
String age = res.getString("age");
System.out.println("编号:" + id);
System.out.println("姓名:" + name);
System.out.println("年龄:" + age);
}
}catch (SQLException e){
e.printStackTrace();
}
//5、预处理查询数据库
System.out.println("以下为预处理方式查询的数据");
try {
sqlPre =con.prepareStatement("select * from persion where id = ?");
sqlPre.setInt(1,2);
ResultSet resPre =sqlPre.executeQuery();
while (resPre.next()){
String id = resPre.getString("id");
String name = resPre.getString("name");
String age = resPre.getString("age");
System.out.println("编号:" + id);
System.out.println("姓名:" + name);
System.out.println("年龄:" + age);
}
}catch (SQLException e){
e.printStackTrace();
}
//6、插入数据
System.out.println("以下为插入数据");
try {
//注意:自增id的位置也必须传递null,不能不传
//注意:自动记录时间的字段也必须传递
sqlPreInsert =con.prepareStatement("insert into persion" +" values (null,?,?,?,?)");
sqlPreInsert.setString(1,"薛延祥");
//数据表中年龄类型是int型,此处用字符串也是可以的
sqlPreInsert.setString(2,"20");
// sqlPreInsert.setInt(2,20);
//提取当前时间
Date date =new Date();
SimpleDateFormat sdf =new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
String nowDate = sdf.format(date);
System.out.println(nowDate);
sqlPreInsert.setString(3,nowDate);
sqlPreInsert.setString(4,nowDate);
sqlPreInsert.executeUpdate();
System.out.println("插入数据成功");
}catch (SQLException e){
e.printStackTrace();
}
//7、修改数据
System.out.println("以下为更新数据");
try {
sqlPreUpdate =con.prepareStatement("update persion set name " +" = ? where id = 1");
sqlPreUpdate.setString(1,"张三修改");
sqlPreUpdate.executeUpdate();
System.out.println("更新数据成功");
}catch (SQLException e){
e.printStackTrace();
}
//8、删除数据
System.out.println("以下为删除数据");
try {
sqlPreDelete =con.prepareStatement("delete from persion where id = ?");
//id为整形,传递字符串也是可以的
sqlPreDelete.setString(1,"13");
// sqlPreDelete.setInt(1,10);
sqlPreDelete.executeUpdate();
System.out.println("删除数据成功");
}catch (SQLException e){
e.printStackTrace();
}