需求说明:使用prepareStatement接口向数据表dog中插入两条狗狗的信息。
首先,我们需要在mysql的工具里面创建一张表
运行比如:我这创建的是狗狗类的一张表
//创建狗狗类
create table `dog`(
health int(4) not null,
love int(4) not null,
`name` varchar(20) not null,
strain varchar(20) not null
)charset=utf8;
运行之后的结果:
说明表已经创建成功了!
刷新之后,打开表是没有数据的,需要我们使用prepareStatement接口插入
然后,再使用Java的工具添加数据
public static void main(String[]args) throws Exception{
//加载JDBC驱动
Class.forName("com.mysql.jdbc.Driver");
//连接mysql
Connection conn = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/epet?useUnicode=true&characterEncoding=utf-8","root","");
System.out.println("建立连接成功!");
//sql语句
String sql = "insert into dog (health,love,name,strain) values (?,?,?,?)";
//调用Connection接口的prepareStatement(String sql)创建prepareStatement对象
PreparedStatement ps = conn.prepareStatement(sql);
//调用prepareStatement接口的setXxx()方法给占位符赋值
ps.setInt(1,90);
ps.setInt(2,0);
ps.setString(3,"美美");
ps.setString(4,"酷酷的雪纳瑞");
//调用prepareStatement接口的execute()执行SQL语句,插入两条狗狗的信息
ps.execute();
System.out.println("插入数据成功!");
//关闭
ps.close();
conn.close();
}
刷新表,显示如下:
这时,你会发现:出现了乱码的现象
我们可以在下面这句连接MySQL数据库的代码中
Connection conn = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/epet","root","");
添加?useUnicode=true&characterEncoding=utf-8
Connection conn = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/epet?useUnicode=true&characterEncoding=utf-8","root","");
再次运行,刷新表之后的结果:
乱码的问题就解决了!!!