zoukankan      html  css  js  c++  java
  • mybatis 简单项目步骤

    mybatis.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>
        <environments default="development">
            <environment id="development">
                <transactionManager type="JDBC" />
                <dataSource type="POOLED">
                    <property name="driver" value="oracle.jdbc.driver.OracleDriver" />
                    <property name="url" value="jdbc:oracle:thin:@localhost:1521:XE" />
                    <property name="username" value="project" />
                    <property name="password" value="1234" />
                </dataSource>
            </environment>
        </environments>
        <mappers>
            <mapper resource="com/oracle/mapper/StudentMapper.xml" />
        </mappers>
    </configuration>

    获取数据源

    public class MyBatisSqlSession {
    
        // 获取数据源
            private static String resource = "mybatis.xml";
            private static InputStream inputStream = null;
            private static SqlSessionFactory sqlSessionFactory = null;
    
            static {
                try {
                    inputStream = Resources.getResourceAsStream(resource);
                    sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
    
            public static SqlSession getSession() {
                return sqlSessionFactory.openSession();
            }
    
    }

    mapper.xml

    <!DOCTYPE mapper
    PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
    "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
    <!--  namespace配置的是dao接口-->
    <mapper namespace="com.oracle.dao.IStudentMapperDao">
        <!--#{}固定写法,中间的值是属性值 
        id 属性值就是接口里面的方法名-->
        <insert id="saveStudent" parameterType="com.oracle.pojo.Student">
        <!-- keycolum表的字段,keyproperty属性 order=before在insert语句执行之前执行-->
            <selectKey keyColumn="id" keyProperty="id" resultType="java.lang.Long" order="BEFORE">
                select student_seq.nextval as id from dual
            </selectKey>
            insert into student (id, name, address, gender,age) values (
            #{id}, #{name}, #{address}, #{gender},#{age})
        </insert>
        
        <select id="getStudentById" parameterType="java.lang.Long" resultType="java.util.HashMap">
            select * from student where id=#{id}
        </select>
        
        
        
        <resultMap type="com.oracle.pojo.Student" id="studentResultMap">
            <id column="id" property="id" javaType="long" jdbcType="BIGINT" />
            <result column="name" property="name" javaType="string" jdbcType="VARCHAR"/>
            <result column="address" property="address" javaType="string" jdbcType="VARCHAR"/>
            <result column="gender" property="gender" javaType="string" jdbcType="VARCHAR"/>
            <result column="age" property="age" javaType="int" jdbcType="INTEGER"/>
        </resultMap>
        
        
        <select id="getStudent" parameterType="java.lang.Long" resultMap="studentResultMap">
            select * from student where id=#{id}
        </select>
        
        <select id="getStudentByParam22222" parameterType="java.util.HashMap" resultMap="studentResultMap">
            select * from student where id=#{id} and address=#{address}
        </select>
        
        
        <sql id="studentsql"> id,name ,address,gender,age </sql>
        <sql id="wheresql"> address=#{address} </sql>
        
        <select id="getStudentByParam" parameterType="java.lang.String" resultType="java.util.HashMap">
            select <include refid="studentsql"></include> from student where <include refid="wheresql"></include>
        </select>
        
        <delete id="deleteStudent" parameterType="long">
            delete from student where id=#{id}
        </delete>
        
        <update id="updateStudent" parameterType="java.util.HashMap" >
            update student set address=#{address} where id=#{id}
        </update>
        
        <select id="selectByCondition" parameterType="com.oracle.pojo.Student" resultType="com.oracle.pojo.Student" >
            select id,name,address,gender,age 
            from student
            where 1=1
            <if test="id != null">
                and id = #{id}
            </if>
            <if test="name != null">
                and name = #{name}
            </if>    
            <if test="address != null">
                and address like #{address}
            </if>
            <if test="gender != null">
                and gender = #{gender}
            </if>
            <if test="age != 0">
                and age = #{age}
            </if>
        </select>
        
        
        
        
        <sql id="key">
            <trim suffixOverrides=",">
                id,
                <if test="name !=null">
                    name,
                </if>
                <if test="address !=null">
                    address,
                </if>
                <if test="gender != null">
                    gender,
                </if>
                <if test="age != 0">
                    age,
                </if>
            </trim>
        </sql>
        <sql id="values">
            <trim suffixOverrides=",">
                #{id},
                <if test="name !=null">
                    #{name},
                </if>
                <if test="address !=null">
                    #{address},
                </if>
                <if test="gender != null">
                    #{gender},
                </if>
                <if test="age != 0">
                    #{age},
                </if>
            </trim>
        </sql>
        <insert id="dynainsert" parameterType="com.oracle.pojo.Student" >
            <selectKey keyColumn="id" keyProperty="id" resultType="java.lang.Long" order="BEFORE">
                select student_seq.nextval as id from dual
            </selectKey>
            insert into student(<include refid="key"></include>) values (<include refid="values"></include>)
        </insert>
        
        <delete id="dynaDeleteArray" >
            delete student where id in
            <foreach collection="array" open="(" close=")" separator="," item="ids">
                #{ids}
            </foreach>
        </delete>
        
        <delete id="dynaDeleteList">
            delete from students where students_id in
            <foreach collection="list" open="(" close=")" separator="," item="ids">
                #{ids}
            </foreach>
        </delete>
        
        <update id="dynaUpdate" parameterType="com.oracle.pojo.Student">
            update student
            <set>
                <if test="address !=null">
                    address = #{address},
                </if>
                <if test="age!=0">
                    age = #{age},            
                </if>
            </set>
            where id=#{id}
        </update>
        
    </mapper>

    dao

    public interface StudentDao {
        public int save(Student stu);
        
        public List query();
    }

    test

    public class Student_Test {
    
        public static void main(String[] args) {
            SqlSession session = MyBatisSqlSession.getSession();
            StudentDao mapper = session.getMapper(StudentDao.class);
            
    //        List list = mapper.query();
    //        System.out.println(list.size());
            
            Student stu=new Student();
            stu.setName("qqqqqqq");
            stu.setAge(100);
            int save = mapper.save(stu);
            session.commit();
        }
    
    }

    实体类忽略,

    必须的jar包,mabatis.jar,ojdbc.jar,和一个log4j用来输出日志

    log4j配置文件名:/MyWeb7.12/src/log4j.properties

    log4j.rootLogger = debug ,  stdout 
    
    log4j.appender.stdout = org.apache.log4j.ConsoleAppender
    
    log4j.appender.stdout.Target = System.out
    
    log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
    
    log4j.appender.stdout.layout.ConversionPattern =  %d %p [%c] - %m%n
    
    log4j.logger.com.ibatis=debug
    
    log4j.logger.com.ibatis.common.jdbc.SimpleDataSource=debug
    
    log4j.logger.com.ibatis.common.jdbc.ScriptRunner=debug
    
    log4j.logger.com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate=debug
    
    log4j.logger.java.sql.Connection=debug
    
    log4j.logger.java.sql.Statement=debug
    
    log4j.logger.java.sql.PreparedStatement=debug,stdout
  • 相关阅读:
    线上幽灵:世界头号黑客米特尼克自传(体验头号黑客传奇人生,洞悉头号黑客思维模式!启明,绿盟,安天,安全宝,百度,腾讯,阿里……众安全专家一致推荐!)
    python+selenium环境搭建
    显示器尺寸和分辨率大小
    jQuery的get()post()getJson()方法
    python发送邮件
    python学习笔记之——正则表达式
    linux上查找文件存放地点和文件中查找字符串方法
    各种协议类型
    HTTP状态码、请求方法、响应头信息
    CSS选择器
  • 原文地址:https://www.cnblogs.com/Damon-Luo/p/5665325.html
Copyright © 2011-2022 走看看