day09_新建项目流程

新建项目流程
1.new project 创建名称,选jdk,修改为本地maven
2.导入相关依赖mysql驱动,mybatis驱动,junit驱动等
<build>
    <resources>
        <resource>
            <directory>src/main/java</directory>
            <includes>
                <include>**/*.properties</include>
                <include>**/*.xml</include>
            </includes>
        </resource>
        <resource>
            <directory>src/main/resources</directory>
            <includes>
                <include>**/*.properties</include>
                <include>**/*.xml</include>
            </includes>
        </resource>
    </resources>
</build>

默认情况下项目只加载src/main/resoures目录下的配置文件,所以需配置自动识别项目中所有目录下的properties和xml的文件
3.编写mybatis的相关配置文件和类
4.创建子工程,删除主src目录,配置mybatis核心配置文件mybatis-config.xml
	jdbc.driver=com.mysql.cj.jdbc.Driver
	jdbc.url=jdbc:mysql://localhost:3306/test?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf8&autoReconnect=true&useSSL=false
jdbc.username=test
jdbc.password=test
 8.0及以上版本换成上面的驱动

<?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="com.mysql.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://localhost:3306/mybatis?useSSL=true&amp;characterEncoding=UTF-8"/>
                <!--              选择数据库,确认安全方式,指定字符格式,和时区-->
                <property name="username" value="root"/>
                <property name="password" value="root"/>
            </dataSource>
        </environment>
    </environments>
    <!--              配置映射  注意写全路径名 -->
    <mappers>
        <mapper resource="org/mybatis/example/UserMapper.xml"/>
    </mappers>
</configuration>
5.配置表映射的xml文件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="org.mybatis.UserMapper">
    <select id="getUserList" resultType="org.mybatis.User">
    select * from user
  </select>

    <select id="selectUserById" resultType="org.mybatis.User">
    select * from User where id = #{id}
  </select>
</mapper>

namespace的包名要和mapper中的一致

id是对应的namespace中的方法名
resultType 返回值类型
parameterType参数类型,基本数据类型可以省略不写
6.从xml中构建sqlSessionFactory工厂,从 SqlSessionFactory 中获取 SqlSession
package org.mybatis;

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 java.io.IOException;
import java.io.InputStream;

public class MybatisUtil{

    private static InputStream inputStream;
    static {
            //获取sessionfactory工厂对象
        try {
            String resource = "org/mybatis/mybatis-config.xml";
            inputStream = Resources.getResourceAsStream(resource);
            SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
            getSqlSession(sqlSessionFactory);
        } catch (IOException e) {
            e.printStackTrace();
        }

    }
    //从工厂中获取SqlSession实例,sqlSession中包含了执行sql的所有方法
    public static SqlSession getSqlSession(SqlSessionFactory sqlSessionFactory){
        return sqlSessionFactory.openSession();
    }
}

7.idea项目设置中语言级别
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.8.1</version>
                <configuration>
                    <source>1.11</source>
                    <target>1.11</target>
                </configuration>
            </plugin>
        </plugins>
    </build>
8.写对应的mapper,pojo,和测试类
package com.kuang.dao;

import com.kuang.pojo.User;

import java.util.List;

public interface UserDao {
    List<User> getUserList();
    User selectUserById(int id);
}
package com.kuang.pojo;

public class User {
    private int id;
    private String name;
    private String pwd;

    public User() {
    }

    public User(int id, String name, String pwd) {
        this.id = id;
        this.name = name;
        this.pwd = pwd;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getPwd() {
        return pwd;
    }

    public void setPwd(String pwd) {
        this.pwd = pwd;
    }

    @Override
    public String toString() {
        return "User{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", pwd='" + pwd + '\'' +
                '}';
    }
}

package com.kuang.dao;import com.kuang.pojo.User;import com.kuang.utils.MybatisUtil;import org.apache.ibatis.session.SqlSession;import org.junit.Test;import java.util.List;public class UserDaoTest {    @Test    public void test(){        SqlSession sqlSession = MybatisUtil.getSqlSession();        UserMapper mapper = sqlSession.getMapper(UserDao.class);        //查询所有用户        List<User> userList = mapper.getUserList();        for (User user:userList) {            System.out.println(user);        }        //根据id查询        User user = mapper.selectUserById(1);        System.out.println(user);        sqlSession.close();    }}1.注意关闭流  2.增删改需要提交事务!    
9.map类型的参数的使用方式
 @Test    public void addMap(){        SqlSession sqlSession = MybatisUtil.getSqlSession();        UserMapper mapper = sqlSession.getMapper(UserMapper.class);        //map中值对应sql中参数变量即可,不用和实体类属性名相同;如果参数是实体类,则必须和属性名相同        HashMap<String, Object> map = new HashMap<>();        map.put("userId",7);        map.put("userName","shanshan");        map.put("userPWD","33333");        int i = mapper.addMap(map);        if(i>0){            System.out.println("插入成功");        }        sqlSession.commit();        sqlSession.close();    } <insert id="addMap" parameterType="map" >        insert into user (id,name,pwd) values (#{userId},#{userName},#{userPWD});    </insert>                对比实体类类型的参数        <insert id="addUser" parameterType="com.kuang.pojo.User" >        insert into mybatis.user(id,name,pwd) values (#{id},#{name},#{pwd})    </insert>
10.模糊查询
@Test    public void likeSect(){        SqlSession sqlSession = MybatisUtil.getSqlSession();        UserMapper mapper = sqlSession.getMapper(UserMapper.class);        HashMap<String, Object> map = new HashMap<>();        map.put("uName","%sh%");        List<User> users = mapper.likeSect(map);        for (User user : users) {            System.out.println(user);        }        sqlSession.close();    }<select id="likeSect" parameterType="map" resultType="com.kuang.pojo.User">    select * from user where name like #{uName}  </select>            
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值