java编程Mysql数据库的安装以及增删改查测试
1.首先下载Mysql的安装包以及驱动程序(注意版本系统位数)
安装好驱动就可以开始了
这里在eclipse开发,首先导入驱动程序jar。
新建了一个数据库,可以先在dos下操作,创建一个表,插入一条数据,
连接数据库(mysql -u用户名 -p密码)mysql -uroot -padmin
程序:
package com.lipengfei.mysqltest;
import java.sql.Connection;
import java.util.Date;
import com.mysql.jdbc.Statement;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
public class JDBCMySQL {
public static final String DBDRIVER="org.gjt.mm.mysql.Driver";
public static final String DBURL="jdbc:mysql://localhost:3306/student";
public static final String DBUSER="root";
public static final String DBPASS="admin";
public static void main(String[] args)throws Exception{
Connection connection=null;
PreparedStatement premt=null;
//加载驱动程序
Class.forName(DBDRIVER);
//1.getConnection()方法,连接MySQL数据库!!
connection = DriverManager.getConnection(DBURL,DBUSER,DBPASS);
if(!connection.isClosed())
System.out.println("Succeeded connecting to the Database!");
//2.创建statement类对象,用来执行SQL语句!!
java.sql.Statement statement = connection.createStatement();
//要执行的SQL语句
String sql = "select * from person";
String sql2="INSERT INTO person(name,age,birthday,salary)VALUES(\"xx\",22,null,22)";
//3.ResultSet类,用来存放获取的结果集!!
//statement.executeUpdate(sql2);
ResultSet rs = statement.executeQuery(sql);
String name = null;
int id = 0;
java.sql.Date sqldate=null;
while(rs.next()){
//获取stuname这列数据
name = rs.getString("name");
//获取stuid这列数据
id = rs.getInt("age");
sqldate=rs.getDate("birthday");
//首先使用ISO-8859-1字符集将name解码为字节序列并将结果存储新的字节数组中。
//然后使用GB2312字符集解码指定的字节数组。
name = new String(name.getBytes("ISO-8859-1"),"gb2312");
//输出结果
System.out.println(id + "\t" + name+"\t"+sqldate);
}
PreparedStatement psql;
ResultSet res;
//预处理添加数据,其中有两个参数--“?”
psql = connection.prepareStatement("insert into person(name,age,birthday,salary)values(?,?,?,?)");
psql.setString(1, "dd"); //设置参数1,name 为小明
psql.setInt(2, 8); //设置参数2,创建id为5的数据
psql.setDate(3, sqldate);
psql.setFloat(4, 4444.3f);
psql.executeUpdate(); //执行更新
//预处理更新(修改)数据
psql = connection.prepareStatement("update person set name = ? where age = ?");
psql.setString(1,"xiaowang"); //设置参数1,将name改为王五
psql.setInt(2,10); //设置参数2,将id为2的数据做修改
psql.executeUpdate();
//预处理删除数据
psql = connection.prepareStatement("delete from person where name = ?");
psql.setString(1, "??");
psql.executeUpdate();
//查询修改数据后student表中的数据
psql = connection.prepareStatement("select*from person");
res = psql.executeQuery(); //执行预处理sql语句
System.out.println("执行增加、修改、删除后的数据");
while(res.next()){
name = res.getString("name");
id = res.getInt("age");
name = new String(name.getBytes("ISO-8859-1"),"gb2312");
System.out.println(id + "\t" + name);
}
res.close();
psql.close();
rs.close();
connection.close();
} catch(ClassNotFoundException e) {
//数据库驱动类异常处理
System.out.println("Sorry,can`t find the Driver!");
e.printStackTrace();
} catch(SQLException e) {
//数据库连接失败异常处理
e.printStackTrace();
}catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}finally{
System.out.println("数据库数据成功获取!!");
}
// PreparedStatement psql;
// ResultSet res;
// //预处理添加数据,其中有两个参数--“?”
// psql = connection.prepareStatement("insert into person values(?,?)");
// psql.setInt(1, 8); //设置参数1,创建id为5的数据
// psql.setString(2, "xiaogang"); //设置参数2,name 为小明
// psql.executeUpdate();
}
}
控制台输出以及dos输出:
Succeeded connecting to the Database!
-----------------
执行结果如下所示:
-----------------
学号 姓名
-----------------
20 aa 1992-12-21
8 xiaogang 1992-12-21
8 xiaogang 1992-12-21
8 xiaogang 1992-12-21
8 xiaogang 1992-12-21
8 xiaogang 1992-12-21
8 ?? 1992-12-21
8 ?? 1992-12-21
8 ?? 1992-12-21
8 ?? 1992-12-21
8 dd 1992-12-21
8 dd 1992-12-21
8 dd 1992-12-21
执行增加、修改、删除后的数据
20 aa
8 xiaogang
8 xiaogang
8 xiaogang
8 xiaogang
8 xiaogang
8 dd
8 dd
8 dd
8 dd
数据库数据成功获取!!