其实我是不想学java框架的,我觉得自己会用servlet就ok,没想去当后台当全栈,奈何公司只有我一个懂后台,我还是喜欢我的大前端,没办法为了干活为了生存只能学这个鸡儿。
MyBatis是一个数据库的框架,首先配置MyBatis环境,在这里我们需要用到一个鸡儿,就是下面这个,当然你还需要一个你所用数据库的jar包,这里就不多说了
然后导入这两个jar包,就像下面这样,对了,最近从eclipse换到idea来了,感觉像回到了家,跟AS一样,特别舒服
导入了包之后我们就需要来写配置文件了,配置文件呢主要有两个,一个是数据库连接的配置文件,一个是实体类的映射文件文件,这个主要用来写一些sql语句
下面是数据库连接的配置文件
<?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>
<!-- 配置开发环境,可以配置多个,在具体用时再做切换 default用来指定数据库连接-->
<environments default="test">
<!-- 数据库连接的名字 在上面的default来指定用这个连接 可以有多个environment -->
<environment id="test">
<!-- 事务管理类型:JDBC、MANAGED -->
<transactionManager type="JDBC"></transactionManager>
<!-- 数据源类型:POOLED、UNPOOLED、JNDI -->
<dataSource type="POOLED">
<!--下面这些就是具体连接的配置了 -->
<property name="driver" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://localhost:3306/test?characterEncoding=utf-8" />
<property name="username" value="root" />
<property name="password" value="密码" />
</dataSource>
</environment>
</environments>
<!-- 加载映射文件 mapper 这些个文件里面的就是一些sql语句 可以放好多好多-->
<mappers>
<!-- 使用接口注解的方式 包名.文件名 -->
<mapper class="util.PlaceInterface"/>
</mappers>
</configuration>
这样我们的数据库连接的文件就ojbk了下面就是实体类的映射文件,要创建映射文件首先要有一个实体类,下面是一个实体类
//假装这里又很多的代码
ok,实体类完成,配置实体类的映射文件,刚刚看博客发现好像不需要创建映射文件,所以,我们映射文件就不写了,嗯,那么通过接口注解的方式来实现
创建一个接口,这个sql语句比较长,那么我们来解释一下下面的东西,#{CarInformationSerial} 这个是里面的东西是方法里面的参数的属性,所以说这样我们就不需要什么配置文件了,真尼玛好用啊
public interface PlaceInterface {
@Insert(" INSERT INTO Place(CarInformationSerial,PositionX,PositionY,Speed,DateTime,Date) VALUES (#{CarInformationSerial},#{PositionX},#{PositionY},#{Speed},#{DateTime},#{Date})")
void InsetPlace(CarMessage carMessage);
@Select(" SELECT * FROM place WHERE CarInformationSerial=#{CarInformationSerial} ORDER BY placeId DESC LIMIT 1")
CarMessage getPlace(String CarInformationSerial);
}
下面是就来操作了
//你的配置文件的位置 包名/文件名
private static String resource = "sqlxml/Mybatiis.xml";
private static InputStream inputStream = null;
private static SqlSessionFactory sqlSessionFactory;
static{
try {
inputStream = Resources.getResourceAsStream(resource);
// 创建 SqlSessionFactory
sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
} catch (IOException e) {
e.printStackTrace();
}
}
//其他类可以通过这个方法获取SqlSessionFactory
public static SqlSessionFactory getSession() {
return sqlSessionFactory;
}
下面是执行接口注解中的查询语句
public static CarMessage Textget(CarMessage carMessage){
SqlSession sqlSession = getSessio().openSession(); // 获取到 SqlSessio
//你的接口注解对象
PlaceInterface placeInterface=sqlSession.getMapper(PlaceInterface.class);
//输入查询参数
CarMessage c=placeInterface.getPlace(carMessage.getCarInformationSerial());
sqlSession.commit();
//返回查询到的东西
return c;
}
反正有了接口注解你就只需要写好你的sql语句就ok