因为一开始学的不是太好,从头缕一遍ssm开发,发现ssm并不是刚开始学的那么难以理解了
这个项目是一个简单的web工程
单纯的mybatis项目需要两个配置文件
一。数据源配置文件
这个文件是配置数据库的文件,首先创建一个web项目,在src同级目录下新建一个文件夹,我这里以config为例,在这个文件夹下创建一个sqlMapConfig.xml文件,用来配置数据库的信息
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> <!-- 和spring整合后environments配置将废除 --> <environments default="development"> <environment id="development"> <!-- shiyong使用jdbc事务管理 --> <transactionManager type="JDBC"></transactionManager> <!-- 数据库连接池 --> <dataSource type="POOLED"> <property name="driver" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql://localhost:3306/ssm?characterEncoding=utf-8"/> <property name="username" value="root"/> <property name="password" value="123456"/> </dataSource> </environment> </environments> <!-- 查找sql映射文件 --> <mappers> <mapper resource="mapper/CustomerMapper.xml"/> </mappers> </configuration>
二。第二个配置文件就是存放sql语句的文件,可以再congfig文件夹下面再创建一个文件夹,我这里创建的是mapper文件夹,文件名是CustomerMapper,这个配置文件和dao层的接口是相对应的,同时这个配置文件需要集成(也可以说是注入)到数据库配置文件中
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!-- 该文件主要是编写mybaties中的mapper接口里面的方法提供对应的sql语句 -->
<!--这里的namespace指的是dao层接口的全名称--> <mapper namespace="dao.SaveUsersss"> <!-- 添加客户 --> <!--id指的是dao层接口的方法名,parameterType:传入的参数名称--> <insert id="saveUsers" parameterType="java.util.List"> insert into ssm.t_customer(name,gender,telephone,address) values
<!--collection=""具体里面写入什么值,根据传递过来的参数而定,若是数组,则用array-->
<!--具体的请参考:https://www.cnblogs.com/yy3b2007com/p/10417242.html#autoid-3-0-0,里面介绍的挺详细-->
<!--collection="list"表示这个传过来额参数为List集合,item:每一次遍历获得的结果对象,separator=",":每一次遍历的结果用","隔开--> <foreach collection="list" item="HAHA" index="index" separator=","> ( #{HAHA.name}, #{HAHA.gender}, #{HAHA.telephone}, #{HAHA.address} ) </foreach> </insert>
<!-- 查询 -->
<!--resultType:返回的结果集-->
<select id="saveMessage" resultType="entity.UserEntity"
parameterType="java.util.List">
select * from ssm.t_customer where id in
<!--open:遍历过程中以什么开始,close:遍历过程中以什么结束-->
<foreach item="item" index="index" collection="list" open="("
separator="," close=")">
#{item}
</foreach>
</select>
</mapper>
测试代码:
package mytest; import java.io.IOException; import java.io.InputStream; import java.util.ArrayList; import java.util.List; import org.apache.ibatis.io.Resources; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder; import org.junit.Test; import dao.UserMapper; import entity.UserEntity; public class MyTest { // private SqlSessionFactoryBuilder sqlSessionFactoryBuilder; @Test public void getMessage() throws IOException{ //1创建sqlsessionfactorybuild SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder(); //2读取mybatis配置文件 InputStream inputStream = Resources.getResourceAsStream("myMapConfig.xml"); //3创建sqlsessionfactory SqlSessionFactory build = sqlSessionFactoryBuilder.build(inputStream); //4打开session SqlSession openSession = build.openSession(); //5获取Mapper接口对象,接收CustomerMapper生成的代理类对象 UserMapper mapper = openSession.getMapper(UserMapper.class); List<Integer> list = new ArrayList<Integer>(); list.add(1); list.add(2); list.add(3); List<UserEntity> saveMessage = mapper.saveMessage(list); System.out.println(saveMessage); //提交事务 openSession.commit(); //关闭连接 openSession.close(); } }
熟悉测试代码,对于 mybatis-spring 的整合大有帮助