学习Java30天 第三天 mybatis实践(1)

目录:
在这里插入图片描述
beam:
country user 基本属性构造方法 tostring
UserVo

package com.sikiedu.beam;

public class UserVo {
    //包装类
    private User user;

    public User getUser() {
        return user;
    }

    public void setUser(User user) {
        this.user = user;
    }
}

dao:
UserDao:

package com.sikiedu.dao;


import com.sikiedu.beam.User;

public interface UserDao {

     User getUserById(Integer id);
}

UserDaoImpl:

package com.sikiedu.dao;

import com.sikiedu.beam.User;

import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;


public class UserDaoImpl implements UserDao {
private  SqlSessionFactory ssf;
public UserDaoImpl(SqlSessionFactory ssf) {
        this.ssf = ssf;
    }

    @Override
    public User getUserById(Integer id) {

        SqlSession session=ssf.openSession();

        return session.selectOne("UserMapper.selectUserById", 1);
    }
}

mapper
CountryMapper:

    package com.sikiedu.mapper;
    
    import com.sikiedu.beam.Country;
    
    import java.util.List;
    
    public interface CountryMapper {
        List<Country> selectAll();
    }
    CountryMapper.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="com.sikiedu.mapper.CountryMapper">


    <resultMap id="country" type="Country">
       <result property="id" column="c_id"/>

    </resultMap>

    <select id="selectAll" resultType="country">
        select *  from country
    </select>
</mapper>

UserMapper:

package com.sikiedu.mapper;

import com.sikiedu.beam.User;
import com.sikiedu.beam.UserVo;

import java.util.List;

public interface UserMapper {
    //4大原则
    public User selectUserById(Integer id);

    public List<User> selectUserByName(String name);

    public User selectUserByUserVo(UserVo vo);

    public  Integer selectUserCount();

}

UserMapper.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="com.sikiedu.mapper.UserMapper">
    <select id="selectUserById" parameterType="Integer" resultType="user">
        select * from user where u_id =#{id}
    </select>

    <select id="selectUserByName" parameterType="String" resultType="user">
        select * from user where u_username like "%"#{name}"%"
    </select>

    <insert id="insertUser" parameterType="User" >
        insert into user values(null , #{u_username },#{ u_password},#{u_sex },#{  u_createTime },#{u_cid})
    </insert>

<update id="updateUser" parameterType="com.sikiedu.beam.User" >
    update user set u_username =#{u_username} where u_id=#{u_id}
</update>

    <delete id="deleteUserById" parameterType="Integer"  >
        delete from user where u_id=#{u_id}
    </delete>


    <select id="selectUserByUserVo" parameterType="UserVo" resultType="user">
        select * from user where u_id =#{user.u_id}
    </select>

<!--    public  Integer selectUserCount();-->

    <select id="selectUserCount" resultType="Integer">
-- 不能有空格
        select count(*) from user
    </select>
</mapper>

test:
HelloMyBatis:

package com.sikiedu.test;

import com.sikiedu.beam.User;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.Test;

import java.io.IOException;
import java.io.InputStream;
import java.util.Date;
import java.util.List;


public class HelloMyBatis {

    @Test
    public void Test1() throws IOException {
        String resource="sqlMapConfig.xml";
        InputStream in = Resources.getResourceAsStream(resource);
        SqlSessionFactoryBuilder saab=new SqlSessionFactoryBuilder();
        SqlSessionFactory ssf=saab.build(in);
        SqlSession session=ssf.openSession();
        User user = session.selectOne("UserMapper.selectUserById", 1);
        System.out.println(user);
    }


    @Test
    public void Test2() throws IOException {
        String resource="sqlMapConfig.xml";
        InputStream in = Resources.getResourceAsStream(resource);
        SqlSessionFactoryBuilder saab=new SqlSessionFactoryBuilder();
        SqlSessionFactory ssf=saab.build(in);
        SqlSession session=ssf.openSession();
        List<User> list = session.selectList("UserMapper.selectUserByName", "王");
//        for(User u:user){
//            System.out.println(u);
//        }

        for (User u:list) {
            System.out.println(u);
        }
    }

    @Test
    public void Test3() throws IOException {
        String resource="sqlMapConfig.xml";
        InputStream in = Resources.getResourceAsStream(resource);
        SqlSessionFactoryBuilder saab=new SqlSessionFactoryBuilder();
        SqlSessionFactory ssf=saab.build(in);
        SqlSession session=ssf.openSession();

        User user=new User();

        user.setU_username("小李");
        user.setU_password("1234");
        user.setU_sex("1");

        user.setU_createTime(new Date());
        user.setU_cid(1);
        session.insert("UserMapper.insertUser",user);
        session.commit();

    }

    @Test
    public void Test4() throws IOException {
        String resource="sqlMapConfig.xml";
        InputStream in = Resources.getResourceAsStream(resource);
        SqlSessionFactoryBuilder saab=new SqlSessionFactoryBuilder();
        SqlSessionFactory ssf=saab.build(in);
        SqlSession session=ssf.openSession();

        User user=new User();
        user.setU_id(12);
        user.setU_username("小liu");

        session.insert("UserMapper.updateUser",user);
        session.commit();

    }

    @Test
    public void Test5() throws IOException {
        String resource="sqlMapConfig.xml";
        InputStream in = Resources.getResourceAsStream(resource);
        SqlSessionFactoryBuilder saab=new SqlSessionFactoryBuilder();
        SqlSessionFactory ssf=saab.build(in);
        SqlSession session=ssf.openSession();




        session.delete("UserMapper.deleteUserById",14);
        session.commit();

    }


}

MapperTest:

package com.sikiedu.test;

import com.sikiedu.beam.Country;
import com.sikiedu.beam.User;
import com.sikiedu.beam.UserVo;
import com.sikiedu.mapper.CountryMapper;
import com.sikiedu.mapper.UserMapper;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.Test;

import java.io.IOException;
import java.io.InputStream;
import java.util.List;

public class MapperTest {
    @Test
    public void Test1() throws IOException {
        String resource = "sqlMapConfig.xml";
        InputStream in = Resources.getResourceAsStream(resource);

//        SqlSessionFactoryBuilder saab=new SqlSessionFactoryBuilder();
//        SqlSessionFactory ssf=saab.build(in);

        SqlSessionFactory ssf = new SqlSessionFactoryBuilder().build(in);
        SqlSession session = ssf.openSession();

        UserMapper mapper = session.getMapper(UserMapper.class);
//        User user=mapper.selectUserById(1);
//        System.out.println(user);
        List<User> user = mapper.selectUserByName("王");
        for (User u : user
        ) {
            System.out.println(u);
        }
    }

    @Test
    public void Test2() throws IOException {
        String resource = "sqlMapConfig.xml";
        InputStream in = Resources.getResourceAsStream(resource);

//        SqlSessionFactoryBuilder saab=new SqlSessionFactoryBuilder();
//        SqlSessionFactory ssf=saab.build(in);

        SqlSessionFactory ssf = new SqlSessionFactoryBuilder().build(in);
        SqlSession session = ssf.openSession();

        UserMapper mapper = session.getMapper(UserMapper.class);
//        User user=mapper.selectUserById(1);
//        System.out.println(user);
        UserVo vo=new UserVo();
        User u=new User();
        u.setU_id(5);
        vo.setUser(u);



        User user = mapper.selectUserByUserVo(vo);

            System.out.println(user);

    }


    @Test
    public void Test3() throws IOException {
        String resource = "sqlMapConfig.xml";
        InputStream in = Resources.getResourceAsStream(resource);

//        SqlSessionFactoryBuilder saab=new SqlSessionFactoryBuilder();
//        SqlSessionFactory ssf=saab.build(in);

        SqlSessionFactory ssf = new SqlSessionFactoryBuilder().build(in);
        SqlSession session = ssf.openSession();

        UserMapper mapper = session.getMapper(UserMapper.class);
//

        Integer count=mapper.selectUserCount();
        System.out.println(count);

    }

    @Test
    public void Test4 () throws IOException {
        String resource = "sqlMapConfig.xml";
        InputStream in = Resources.getResourceAsStream(resource);

//        SqlSessionFactoryBuilder saab=new SqlSessionFactoryBuilder();
//        SqlSessionFactory ssf=saab.build(in);

        SqlSessionFactory ssf = new SqlSessionFactoryBuilder().build(in);
        SqlSession session = ssf.openSession();
//
//        UserMapper mapper = session.getMapper(UserMapper.class);
//
        CountryMapper mapper = session.getMapper(CountryMapper.class);
        List<Country> countries = mapper.selectAll();

        for (Country country:countries
             ) {
            System.out.println(country);
        }


        }

    ```
    在这里插入代码片
    ```
    
 }

UserDaoTest:

package com.sikiedu.test;

import com.sikiedu.beam.User;
import com.sikiedu.dao.UserDao;
import com.sikiedu.dao.UserDaoImpl;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.Test;

import java.io.IOException;
import java.io.InputStream;


public class UserDaoTest {
    private static  SqlSessionFactory ssf;

    static {
        String resource="sqlMapConfig.xml";
        InputStream in = null;
        try {
            in = Resources.getResourceAsStream(resource);

            SqlSessionFactoryBuilder saab=new SqlSessionFactoryBuilder();
            ssf=saab.build(in);
            in.close();

        } catch (IOException e) {
            e.printStackTrace();`在这里插入代码片`
        }


    }


    @Test
    public void DaoTest(){
        UserDao dao=new UserDaoImpl(ssf);
        User user = dao.getUserById(2);
        System.out.println(user);

    }
}

db.properties:

jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/ssm_mybatis?serverTimezone=UTC
jdbc.username=root
jdbc.password=admin

log4j.properties:

# Global logging configuration
log4j.rootLogger=DEBUG, stdout
# Console output...
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.Conversion

sqlMapConfig.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="db.properties"/>
    
    <typeAliases>
<!--        <typeAlias type="com.sikiedu.beam.User"></typeAlias>-->
<!--        推荐使用包,不用一个个弄-->
         <package name="com.sikiedu.beam"/>            
    </typeAliases>
<!--    在集成spring不用-->
    <environments default="development">
        <environment id="development">
<!--            使用jdbc事务-->
            <transactionManager type="JDBC"></transactionManager>
<!--            使用连接池连接数据库-->
            <dataSource type="POOLED">
                <property name="driver" value="${jdbc.driver}"/>
                <property name="url" value="${jdbc.url}"/>
                <property name="username" value="${jdbc.username}"/>
                <property name="password" value="${jdbc.password}"/>
            </dataSource>
        </environment>
    </environments>
    <mappers>
<!--    <mapper resource="UserMapper.xml"/>-->
<!--        <mapper url="file:\\\F:\自己在idea做的项目\mybatis\src\UserMapper.xml"/>-->
<!--        <mapper class="com.sikiedu.mapper.UserMapper"/>-->
<!--        //推荐使用包来配置 usepaper接口和xml放一个包下-->
        <package name="com.sikiedu.mapper"/>

     </mappers>
</configuration>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值