02|第二课:Statement方式的增删改查操作

一、历史回顾

(一)、复习一下上节课的项目

1、jar:mybatis.jar、mysql.jar

2、conf.xml:从指导pdf的文档里面抄写并进行修改。这里有数据库配置信息和映射文件的配置。

(1)、这里的<environments>可以配置多个<environment>,通过default属性来确定选择哪个数据源,来进行数据源的切换。这里还可以通过下面测试类中的代码:SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader, "development");,来修改default。一般不这样做。

(2)、<transactionManager type="JDBC"/>:事务的类型。“JDBC”方式是通过手工的方式提交(commit)、回滚(rollback)、关闭(close)等事务操作。“MANAGED”方式是将事务交由其他组件(Spring、jBoss)去托管,默认会关闭连接(通过配置如下图所示)。

关闭数据库事务自动关闭

(3)、<dataSource type="POOLED">:这里的“POOLED”是使用数据源连接池。省略数据库打开连接操作,只需要从池中获取连接和归还连接即可。还有一个值是“UNPOOLED”,它是传统的JDBC方式,这种方式每次都是打开关闭数据库,这种方式不推荐。还有第三种值是“JNDI”,这种是从开发中间件(例:Tomcat)获取一个内置的数据库连接池。

图示

注意:这里的dtd文件的校验需要联网。如果没有就需要下载到本地使用,否则就不进行提示工作。

3、建立数据库以及映射数据库的实体(表  ---  类)。

namespace:是该mapper文件的唯一标识符,可以通过namespace定位出该文件。可以通过namespace.id可以定位出唯一的SQL语句。

parameterType:输入参数的类型。

resultType:返回结果的类型。

注意:这里的dtd文件的校验需要联网。如果没有就需要下载到本地使用,否则就不进行提示工作。

4、建立xxxMapper.xml,头信息也可以从指导pdf的文档里面抄写。里面可以有增删改查的配置。可以通过这里的namespace.id来唯一确定一个SQL语句。

5、测试类:

(1)、通过conf.xml产生,先将这个文件读到内存。

(2)、通过(1)产生SqlSessionFactory。具体是:SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);

(3)、打开SqlSession。具体是:SqlSession sqlSession = sqlSessionFactory.openSession();

(4)、建立statment,寻找执行的SQL。具体是namespace.id。

(5)、执行。具体是:Person person = (Person)sqlSession.selectOne(statment, new Integer(1));

(6)、关闭SqlSession。具体是:sqlSession.close();

二、增删改查操作

(一)、增删改查操作

1、修改xxxMapper.xml信息,此处修改PersonMapper.xml配置:

mybatis约定:输入参数parameterType和输出参数resultType在形式上都只能有一个。

如果输入/输出参数:是简单类型(8个基本类型 + String)则可以使用任何占位符,例:#{xxx}。如果是对象类型,则必须是对象的属性。例:#{属性名} --- #{id}、#{name}、#{age}。

输出参数:如果返回值类型是一个对象(例:Person),则无论返回一个或是多个,在resultType都写成对象类型(例:com.test.entity.Person)。

2、写测试类:

注意:这里conf.xml针对数据库的事务方式是JDBC方式,所以针对增加、修改、删除都要进行事务的提交或者回滚操作。

例:

PersonMapper.xml配置:

图示

测试类:

图1
图2
图3
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容