javaweb-------mybatis框架的入门知识讲解

来源:互联网 发布:微信分享 js 案例 编辑:程序博客网 时间:2024/04/28 21:41
整理下mybatis框架的使用。。。刚学,但带人入入门还是可以的。。《所用工具是myeclipse》以对一个实体对象操作为例
首先添加两个相关jar包。--------------------------
(我用的是mysql所以用mysql-connector-java-5.1.7-bin.jar,另外一个jar包是--mybatis-3.2.3-SNAPSHOT.jar)
《!---   这两个jar包网上都有下载 ----》
现在进入的是核心配置文件的配置(我取名为:mybatis-config.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>
        <properties resource="ServerConfig.properties" /><!-- 加载数据源参数文件 -->
        
        <typeAliases>
           <package name="org.mybatis.entitys" />《!--实体类的package路径 --》
           <package name="" />
                <!-- <typeAlias type="org.mybatis.entitys.SystemNews" alias="Systemnews" /> -->
        </typeAliases>
        <environments default="development">
                <environment id="development">
                        <transactionManager type="JDBC" />
                        <dataSource type="POOLED"><!--从配置文件中取出数据库链接的参数-->
                                <property name="driver" value="${driver}" />
                                <property name="url" value="${urlname}" />
                                <property name="username" value="${username}" />
                                <property name="password" value="${password}" />
                        </dataSource>
                </environment>
        </environments><!--这块是数据库连接用的 也叫数据源-->
        <mappers>
                <mapper resource="systemnews-mapper.xml" /><!-- sql映射文件的加载 下面有这个映射文件的配置--->
        </mappers>
</configuration>

我的ServerConfig.properties文件在classpath路径下 即src下的
参数文件代码----------------------
driver=com.mysql.jdbc.Driver
url=jdbc\:mysql\://127.0.0.1\:3306/zyz_db?useUnicode\=true&characterEncoding\=utf-8
username=root
urlname=jdbc:mysql://127.0.0.1:3306/zyz_db?characterEncoding=utf-8
password=r5qbesuq
maxActive=50
maxIdle=10
----------------------------------------------------------------------
下一重要的一步是sql映射文件的配置()--------------------------
映射文件名为:systemnews-mapper.xml     实例代码如下;
<?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="org.mybatis.entitys.SystemNews"><!-- 命名空间是实体类的路径 -->
        <insert id="add" parameterType="SystemNews">
                insert into system_news(id,content,nic,time)
                value(#{id},#{content},#{nic},#{time})
  </insert>
        <update id="update" parameterType="SystemNews">
                update system_news set content=#{content},nic=#{nic},time=#{time} where
                id=#{id}
  </update>
        <delete id="delete" parameterType="int">
                delete from system_news where id=#{id}
  </delete>
   <select id="load" parameterType="int" resultType="SystemNews">
     select * from system_news where id=#{id}
   </select>
   <select id="selectmore" resultType="SystemNews">
      select * from system_news
   </select>
   <select id="selectBynic" parameterType="map" resultType="SystemNews">
      select * from system_news where nic like #{nic}
   </select>
   <select id="find" parameterType="map" resultType="SystemNews">
       select * from system_news limit #{inoff},#{pagesize}
   </select>
   <select id="find_count" parameterType="map" resultType="int">
      select count(*) from system_news 
   </select>
</mapper>
,,,,,,彩色部分是自定义的sql语句
最后我们就来做测试了。。。往数据库中添加数据。。。。。
在main函数里面添加如下代码
try {

                InputStream is=Resources.getResourceAsStream("mybatis-config.xml");<!--加载核心配置文件 -->
                SqlSessionFactory sessionFactory=new SqlSessionFactoryBuilder().build(is);《!--  获取session工厂类--》
                SqlSession session=sessionFactory.openSession();《!—— 获取sqlsession对象 ——》
                SystemNews sNews=new SystemNews();《!-- 实例化实体类 ---》
                sNews.setContent("mybatis");
                sNews.setNic("mybatis");
                sNews.setTime(new Date());
                session.insert("org.mybatis.entitys.SystemNews.add",sNews);《!--绿色部分是sql映射文件中的package的值 add是对于的inset标签的id的值---》
                session.commit();《!——ok提交完毕! 数据库中就新增一条记录————》
        } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
        }
原创粉丝点击