因为个人网页还没有搭建完成,但是要记笔记的需求,所以暂时先存在CSDN上,等回头自己服务器搭建好了,就不在这里了
每次内容都是构建完成后回忆写成
之前学校开的ssm课时太短了,老师随便说了两句就结课了,所以只好自己在网上找视频来学了,应该是万事开头难吧,mybatis的配置过程感觉有点复杂,总之复杂也好,不复杂也罢,就这几个组成部分罢了:mybatis.cfg.xml xxxMapper.xml pojo实体类 xxxMapper的interface 工具类和 测试类
-------------------------------------------------------------------------------先附一个目录结构吧
1.Idea配置
1.idea中不能像myeclipse中一样直接右键new出来xml文件,所以只好在set中新建code模版,把xml文件的固定部分作为模版存放即可,具体操作file-》setting-》editor-》File and code templates
2.idea创建maven项目使用webapp时需要注意,pom.xml中的版本改成1.8
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
3.webapp的文档结构有缺失,需要补充。src目录下需要main和test两个文件夹,test设置为test root目录。
main目录下需要创建resources文件夹,设置为resources root目录(存放xml文件)。还需要java文件夹,标记为sources root目录(java文件在这里)
2.默认配置
1.mybatis.config.xml 配置jdbc连接数据库,mapper,注意这里driver的value值,java-mysql的jar包中有一个路径是com.mysql.jdbc.Driver,但是这个已经被废弃了。
<?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>
<environments default="dev">
<environment id="dev">
<transactionManager type="JDBC"></transactionManager>
<dataSource type="UNPOOLED">
<property name="url" value="jdbc:mysql://localhost:3306/mybatis"/>
<property name="driver" value="com.mysql.cj.jdbc.Driver"/>
<property name="username" value="root"/>
<property name="password" value="root"/>
</dataSource>
</environment>
</environments>
<mappers>
<!--必须写斜杠/-->
<mapper resource="com/sz/mapper/GirlMapper.xml"></mapper>
</mappers>
</configuration>
2.mybatismapper.xml 个人认为是对sql语句的装配过程
<?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">
<mapper namespace="com.xawl.mapper.GirlMapper"><!--这里是和实体类pojo的路径对应->
<insert id="insert">
insert into girl (name,flower) values (#{name},#{flower})
</insert>
</mapper>
3.类部分
1.pojo实体类部分
一张表对应一个pojo实体类,对应的setget方法
2.类mapper
类mapper与mapper.xml部分对应,目前对interface的存在意义还不清楚,初学关系,这个问题暂时留作以后解决
3.Util类
负责SqlSession相关的事务
public class MybatisUtil {
private static SqlSessionFactory sqlSessionFactory;
static{//静态只执行一次
String resource = "mybatis.cfg.xml";
InputStream in = null;
try {
in = Resources.getResourceAsStream(resource);
sqlSessionFactory = new SqlSessionFactoryBuilder().build(in);
} catch (IOException e) {
e.printStackTrace();
}finally {
if(in != null){
try {
in.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
public static SqlSession getSession(){
return sqlSessionFactory.openSession();
}
}
以上的部分内容也可以写在Test中(书上的写法),对于可复用性而言,这里就写在util工具类中了
4.Test类
@Test
public void test(){
SqlSession sqlSession = MybatisUtil.getSession();
GirlMapper mapper = sqlSession.getMapper(GirlMapper.class);
Girl g = new Girl();
g.setName("周冬雨");
g.setFlower("梅花");
mapper.insert(g);
sqlSession.commit();
sqlSession.close();
}
mybatis第一节到此截至,考完试再说啦
这里是提及一个关于Mysql的小问题,今天连数据库连了半天老是提示host severTime 有问题,因为我本身今天建表的一个列类型就是DateTime,因为没有用过DateTime类型,所以一直在想是不是我的传值有问题,最后发现是mysql数据库的时区时间默认为system时,是美国时间,所以时间不对应,因而连不上,美国时间加上8小时就好了,这个部分之后会专门再开一节,暂时就这样。