如何搭建环境---初识mybatis

mac2022-06-30  22

一:mybatis概念1:简介       MyBatis本是apache的一个开源项目iBatis,2010年改名为 MyBatis,       MyBatis 是一个基于Java的持久层框架。(操作数据库)2:优点       1:半自动化的ORM实现(实体类和SQL语句之间建立映射关系)       2:SQL代码从程序代码中彻底分离,可重用       3:与JDBC相比,减少了50%以上的代码量       4:小巧灵活、简单易学,是最简单的持久化框架       5:提供XML标签,支持编写动态SQL       6:提供映射标签,支持对象与数据库的ORM字段映射3:MyBatis缺点     1:SQL语句编写工作量大,对开发人员有一定sql技术要求     2:数据库移植性差(不同数据库,sql语句语法有所不同)

*******************************************mybatis环境搭建开始******************************************

1:导入mybatis的jar包    mybatis-3.2.2.jar    mysql-connector-java-5.1.25-bin.jar

2:创建mybatis的核心配置文件(mybatis-config.xml)   <configuration> <environments default="development">  <environment id="development">   <transactionManager type="JDBC" />   <dataSource type="POOLED">    <property name="driver" value="com.mysql.jdbc.Driver" />   驱动    <property name="url" value="jdbc:mysql://localhost:3306/y2t189?useUnicode=true&characterEncoding=utf-8" />  数据库的url    <property name="username" value="root" />   用户名    <property name="password" value="zhangjiugui" />  密码   </dataSource>  </environment> </environments>        <!--           dao层的mapper映射文件(xml)        --> <mappers>  <mapper resource="com/accp/y2t189/dao/UserMapper.xml" /> </mappers>  </configuration>

3: 实体类

4:数据访问的接口(dao)

   public List<User> findUsers();

5:接口与sql语句的映射  UserMapper.xml

   命名空间必须是响应接口的全路径   <mapper namespace="com.accp.y2t189.dao.UserMapper">          id必须和接口中的方法名一致         resultType返回值类型(返回集合的话,指定集合元素的类型) <select id="findUsers" resultType="com.accp.y2t189.entity.User">  SELECT * FROM users </select>

   </mapper>

*******************************************************************写好的粘贴可用*************************************************************************

6:mybatis的工具类

    获得SqlSession        ①:读取配置文件,创建session工厂        ②:在session工厂里,获得session会话    关闭session        判断session实例是否创建,不为null,就关闭session

    /**      * mybatis的工具类      * 获得session      */     public class MybatisUtil {   public static SqlSessionFactory sf;  //session工厂   //获得session工厂         static {            try {            Reader  is= Resources.getResourceAsReader("mybatis-config.xml");            sf= new SqlSessionFactoryBuilder().build(is);         } catch (Exception e) {               e.printStackTrace();           }    }        //获得session         public static SqlSession getSession(){           return sf.openSession();         }             //关闭session         public static void  closeSession(SqlSession session){      if(session !=null){       session.close();      }      }      }

7: 数据操作       //获得session       session=MybatisUtil.getSession();       //获得接口实例       List<User> listUser=session.getMapper(UserMapper.class).findUsers();       //关闭session 

*******************************************mybatis环境搭建结束*************************************************************************************增删改开始***************************************************

        /**  * 查询所有数据  * @return  */ public List<User> findAll();******************        <select id="findAll" resultType="entity.User">  SELECT * FROM users </select>

**************************************************

 /**  * 根据编号查询对象  * @param 用户表的主键  * @return  一个对象user  */ public  User findById(Integer userId);******************        <select id="findById" parameterType="Integer" resultType="entity.User">     select * from users where  id=#{userId} </select>

**************************************************

 /**  * 增加用户信息  * @param 一个对象数据  * @return  数据库的影响行数  */ public Integer add(User user);******************        <insert id="add"  parameterType="entity.User">       INSERT INTO users VALUES(NULL,#{userName},#{password},#{realName}) </insert>

**************************************************

 /**  * 根据编号删除对象  * @param  用户表的主键  * @return 数据库的影响行数  */ public Integer delete(Integer id);******************        <delete id="delete" parameterType="Integer">       delete from users where id=#{id} </delete>

************************************************** 

 /**  * 修改用户信息  * @param 一个对象数据  * @return  数据库的影响行数  */ public Integer update(User user);******************        <!-- 根据属性的主键修改其他的属性值-->        <update id="update" parameterType="entity.User">             update users set userName=#{userName} ,password=#{password},realName=#{realName}             where id=#{id}        </update>

************************************************** 

 /**  * 连表查询用户信息         * 在从表的实体类中添加级联查询主表中的属性         * SELECT u.*,rolename  在用户表中添加角色表的属性-角色名称  */  public List<User> findUserAndRole(); ******************         <select id="findUserAndRole" resultType="entity.User">  SELECT u.*,rolename FROM users u INNER JOIN role  r                ON u.`roleid`=r.`roleid`  </select>**************************************************         模糊查询

    //根据角色名称,模糊查询角色列表    public List<Role>  findRoleByRoleName(String rolename);       <!--  <select id="findRoleByRoleName" resultMap="roleMapping">  SELECT * FROM role   where  roleName  like  concat('%',#{rolename},'%') </select>    -->    <select id="findRoleByRoleName" resultMap="roleMapping">  SELECT * FROM role   where  roleName  like  "%"#{rolename}"%"     </select>*******************************************增删改查结束***************************************************

 

转载于:https://www.cnblogs.com/zhuhuibiao/p/9256731.html

相关资源:JAVA上百实例源码以及开源项目
最新回复(0)