mybatis和spring整合簡單案例

NO IMAGE
1 Star2 Stars3 Stars4 Stars5 Stars 給文章打分!
Loading...

一、建立java工程
二、匯入jar包

三、建立config資料夾用於存放配置檔案

1、mybatis資料夾存放mybatis相關配置檔案
2、spring資料夾存放spring相關配置檔案
3、db.properties為資料庫連線配置檔案
4、log4j.properties為日誌配置檔案

四、在po包中建立實體類

五、配置applicationContext.xml建立SqlSessionFactoryBean

<!--jdbcProperties-->
<context:property-placeholder location="confilg/db.properties"></context:property-placeholder>

<!--dataSource-->
<bean class="org.apache.commons.dbcp.BasicDataSource" id="dataSource" destroy-method="close">
    <property name="driverClassName" value="${jdbc.driver}" />
    <property name="url" value="${jdbc.url}" />
    <property name="username" value="${jdbc.username}" />
    <property name="password" value="${jdbc.password}" />
</bean>

<!--sqlSessionFactory-->
<bean class="org.mybatis.spring.SqlSessionFactoryBean" id="sqlSessionFactory">
    <!--配置檔案-->
    <property name="configLocation" value="config/mybatis/SqlMapConfiger.xml"></property>
    <!---->
    <property name="dataSource" ref="dataSource"></property>
</bean>

六、在mapper資料夾中建立介面和對映檔案

UserMapper.java:


public interface UserMapper {

// 根據id查詢使用者資訊

public User findUserById(int id) throws Exception;

// 新增使用者資訊

public void insertUser(User user) throws Exception;

// 刪除使用者資訊

public void deleteUserById(int id) throws Exception;

// 根據使用者名稱查詢資訊

public List<User> findUserByNmae(String name) throws Exception;

}

UserMapper.xml


<mapper namespace="com.ssm.mapper.UserMapper">
    <!--在對映檔案中配置很多的sql語句-->
    <!--id為識別符號,標識著一個sql語句,成為statement的id,sql語句最後將封裝到mappedStatement物件中-->
    <!--paramentType表示引數的型別,resultType代表返回集對應的Java類型別-->
    <!--#{}代表佔位符,value代表接受輸入的引數,引數名就是value,如果輸入引數是簡單型別,那引數名可以任意-->
    <!--根據id查詢-->
    <select id="findUserById" parameterType="int" resultType="com.ssm.po.User">
        select * from user where id=#{value}
    </select>
    <!--根據使用者名稱稱查詢-->
    <!--${} 代表拼接字串 接收到的字串不加任何修飾的拼接在sql語句中,如果傳入的引數是簡單型別,則引數名只能是value-->
    <select id="findUserByNmae" parameterType="String" resultType="com.ssm.po.User">
        select * from user where name like '%${value}%'
    </select>
    <!--新增使用者-->
    <!--引用型別的話,值為java類的屬性名-->
    <insert id="insertUser" parameterType="com.ssm.po.User">
        <selectKey keyProperty="id" resultType="int" order="AFTER">
            select last_insert_id()
        </selectKey>
        insert into user values (#{id},#{name},#{age})
    </insert>
    <!--根據id刪除使用者-->
    <delete id="deleteUserById" parameterType="java.lang.Integer">
        delete from user where id=#{value}
    </delete>
</mapper>

七、在applicationContext.xml中配置mapper,該bean可根據mapper介面建立例項化物件

<bean class="org.mybatis.spring.mapper.MapperFactoryBean" id="mapperFactoryBean">
    <!--mapperInterface指定介面-->
    <property name="mapperInterface" value="com.ssm.mapper.UserMapper"></property>
    <!--配置SqlSessionFactory-->
    <property name="sqlSessionFactory" ref="sqlSessionFactory"></property>
</bean>

八、測試

建立測試資料夾(資料夾型別為Tests型別)
建立測試類

測試類程式碼 UserMapperTest:

public class UserMapperTest {
    @Test
    public void findUserById() throws Exception {
        ApplicationContext applicationContext = new ClassPathXmlApplicationContext("classpath:spring/applicationContext.xml");
        UserMapper userMapper = (UserMapper) applicationContext.getBean("mapperFactoryBean");
        User user = userMapper.findUserById(2);
        System.out.println(user);
    }
}

九、結果

User{id=2, name=’yajing’, age=18}

相關文章

開發語言 最新文章