Mybatis学习

搭建环境:导入相关的jar包
         jdbc驱动   mybatis
配置文件:
         Jdbc连接的属性文件(driver,url,username,password)

SqlSession:
    1.向SQL语句传入参数
    2.执行SQL语句
    3.获取执行SQL语句的结果
    4.事务的控制
如何得到SqlSession
    1.通过配置文件获取数据库连接相关信息
    2.通过配置信息构建SqlSessionFactory
    3.通过SQLSessionFactory打开数据库的会话



访问数据库类
 public class DBAccess{
     public SqlSession getSqlSession() throws IOException{
         通过配置文件获取数据库连接相关信息
       Reader reader=Resources.getResourceAsReader("配置文件")
         通过配置信息构建SqlSessionFactory
       SqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder().build(reader);
         通过SQLSessionFactory打开数据库的会话
       SqlSession sqlSession=sqlSessionFactory.openSession();
       return sqlSession;
     }
 }

 Dao的方法中
   public List<Message> queryMessageList(String command,String description){
       DBAccess dBAccess=new DBAccess();
       List<Message> messageList=new ArrayList<Message>();
       SqlSession sqlSession=null;
       try{
       sqlSession=dBAccess.getSqlSession();
       messageList=sqlSession.selectList("Message.queryMessageList")
       }
       catch(IOException){
           e.printStackTrace();
       }finally{
           if(sqlSession!=null){
           sqlSession.close();}
       }
       return messageList;

   }


或者使DaoImpl继承SqlSessionDaoSupport

SqlSession sqlSession=this.getSqlSession();






   <mapper namespace="Message">
<resultMap id="MessageResult" type="javaBean的全路径">
                              property是数据库中的列名,jdbcType是列名的类型   int 是 Integer ,column是java对应类的属性名
<id property="id" jdbcType="INTEGER" column="id"/>   /主键标签
<result property="username" jdbcType="VARCHAR" column="username"/>
<result property="password.encrypted" jdbcType="VARCHAR" column="password"/>
<result property="administrator" jdbcType="BOOLEAN" column="administrator"/>
</resultMap>


<select id="queryMessageList" resultMap="MessageResult" parameterType="long"> SELECT * FROM user WHERE id = #{id:INTEGER} </select>
    id属性:为sql语句起名
<select id="queryMessageList" parameterType="long" resultType="int"> SELECT version FROM user WHERE id = #{id,jdbcType=INTEGER} </select>
<delete id="delete" parameterType="UserAlias"> DELETE FROM user WHERE id = #{id:INTEGER} </delete>
<insert id="insert" parameterType="UserAlias" useGeneratedKeys="false"> INSERT INTO user ( id, username, password, administrator ) VALUES ( #{id}, #{username,jdbcType=VARCHAR}, #{password.encrypted:VARCHAR}, #{administrator,jdbcType=BOOLEAN} ) </insert>
<update id="update" parameterType="UserAlias"> UPDATE user SET username = #{username,jdbcType=VARCHAR}, password = #{password.encrypted,jdbcType=VARCHAR}, administrator = #{administrator,jdbcType=BOOLEAN} WHERE id = #{id,jdbcType=INTEGER} </update>
<!-- Unique constraint check -->
<select id="isUniqueUsername" parameterType="map" resultType="boolean">
SELECT (count(*) = 0) FROM user WHERE ((#{userId,jdbcType=BIGINT} IS NOT NULL AND id != #{userId,jdbcType=BIGINT}) OR #{userId,jdbcType=BIGINT} IS NULL)
<!-- other than me -->
AND (username = #{username,jdbcType=VARCHAR})
</select>
</mapper>





<configuration>
<settings>
<setting value="false" name="useGeneratedKeys"/>
<setting value="true" name="useColumnLabel"/>
</settings>
<typeAliases>
<typeAlias type="org.apache.ibatis.submitted.complex_property.User" alias="UserAlias"/>
</typeAliases>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC">
<property value="" name=""/>
</transactionManager>
<dataSource type="UNPOOLED">
<property value="org.hsqldb.jdbcDriver" name="driver"/>
<property value="jdbc:hsqldb:mem:complexprop" name="url"/>
<property value="sa" name="username"/>
</dataSource>
</environment>
</environments>
<mappers>    (配置文件)
<mapper resource="org/apache/ibatis/submitted/complex_property/User.xml"/>
</mappers>
</configuration>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值