时间:2021-07-01 10:21:17 帮助过:14人阅读
解决办法:?characterEncoding=utf8 在连接的数据库后加入这个语句设置编码集为utf8然后建立数据库表时把它的字符集也设置为utf8
②数据库的修改操作(和上面类似所以简写)
1.获取connection对象
2.给出sql语句,切记占位符的使用
3.获取preparestatement对象,封装预编译sql语句
4.填充占位符
5.执行操作
6.资源关闭
从上述的插入和修改不难看出,有几个步奏是重复的且一样的,就是.获取connection对象,就是重复且一样的我们可以把它放在一个工具类的静态方法中,以供调用
方法一方法二都是获取一个connection对象,在这没区别;(ClassLoader.getSystemClassLoader().getResourceASStream("文件名"),在这和之前讲的第五种方法中的获取流的方式是一样的;
③数据库的删除
和上面两个操作一样,只是换了sql语句;
④为了方便我们可以设置一个方法,只给这个方法要具体操作的sql语句,和数据,就可以对数据库进行增删改通用操作;
方法参数1设置为String类型,是放sql语句的,方法的参数二是用来放具体需要填写的占位符号,因为占位符不同sql语句个数不同,所以在这的参数二的写法就理解为一个未知长度的object类型的数组;
1.先是获取connection对象连接数据库;
2.获取prepared statement对象用来预编译传入的sql语句;
3.利用一个循环,循环条件就是这个数组的长度,因为占位符号从1开使,所以setobject第一个参数要加1,数组从0开始,后面那个就没必要了
4.执行操作,关闭资源;
⑤数据库的查找
数据库的查询操作相交于增删改有区别,因为查找需要返回一个查找结果,而增删改不用,所以也更复杂一些;
1.还是一样的获取connectiong连接对象
2.预编译sql语句,将其封装在preparedstatement对象中;
3.(区别开始)这不再是简单的运行,而是调用executeQuery,运行后返回一个查找结果对象,用resultset来接受;
4.调用返回结果的next方法,此方法表示如果有查询结果就返回true并指向下一条,如果下一条没有结果就返回false;
5.调用get+类型名 方法返回结果,下图是对应结果图;
6.一般把返回结果封装在对象中,我们返回一个对象,这样的方法更好;
就像图所示一样,把表的列作为java类,表的列作为类的属性,而一条查询结果就作为一个实例对象,到时候直接返回对象就好;
这是对应studnet的对象类
这是输出结果(记得重写tostring方法;)
JDBC学习2.0——数据库表的增删改查
标签:under character 需要 mamicode 技术 encoding string类 loading string