我插入数据没报错,但数据库也没有数据

来源:7-3 自由编程

cccca

2020-04-01 18:12:15

@Test
   public void insertSong(){
       SqlSession sqlSession=null;
       try{
           sqlSession=MybatisUtils.openSession();
           SongDao songDao = sqlSession.getMapper(SongDao.class);
           Song song =new Song("给我一首歌的时间","周杰伦","流行","周杰伦","国语",Timestamp.valueOf("2008-10-14 10:10:10"));
           System.out.println(song);
           int i = songDao.insertSong(song);
           System.out.println(i);
       }catch (Exception e){
           e.printStackTrace();
           if(sqlSession!=null){
               sqlSession.rollback();
           }

       }finally {
           MybatisUtils.closeSession(sqlSession);
       }
   }


package com.san.mybatis.entity;

import java.sql.Timestamp;

public class Song {
   private Integer id;
   private String name;
   private String singer;
   private String category;
   private String writer;
   private String language;
   private Timestamp isSuDate;

   public Song() {
   }

   public Song( String name, String singer, String category, String writer, String language, Timestamp isSuDate) {

       this.name = name;
       this.singer = singer;
       this.category = category;
       this.writer = writer;
       this.language = language;
       this.isSuDate = isSuDate;
   }

   public Integer getId() {
       return id;
   }

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

   public String getName() {
       return name;
   }

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

   public String getSinger() {
       return singer;
   }

   public void setSinger(String singer) {
       this.singer = singer;
   }

   public String getCategory() {
       return category;
   }

   public void setCategory(String category) {
       this.category = category;
   }

   public String getWriter() {
       return writer;
   }

   public void setWriter(String writer) {
       this.writer = writer;
   }

   public String getLanguage() {
       return language;
   }

   public void setLanguage(String language) {
       this.language = language;
   }

   public Timestamp getIsSuDate() {
       return isSuDate;
   }

   public void setIsSuDate(Timestamp isSuDate) {
       this.isSuDate = isSuDate;
   }

   @Override
   public String toString() {
       return "Song{" +
               "id=" + id +
               ", name='" + name + '\'' +
               ", singer='" + singer + '\'' +
               ", category='" + category + '\'' +
               ", writer='" + writer + '\'' +
               ", language='" + language + '\'' +
               ", isSuDate=" + isSuDate +
               '}';
   }
}


package com.san.mybatis.dao;

import com.san.mybatis.entity.Song;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.SelectKey;

import java.util.List;

public interface SongDao {
   @Select("select * from t_song")
   public List<Song> selectSongNameAll();
   @Select("select * from t_song where category= #{category}")
   public List<Song> selectSongByCategory(@Param("category") String category);

   @Insert("insert into t_song(name,singer,category,writer,language,issudate) values(#{name},#{singer},#{category},#{writer},#{language},#{isSuDate})")
   @SelectKey(statement = "select last_insert_id()",before = false ,keyProperty = "id",resultType = Integer.class)
   public int insertSong( Song song);

}


18:07:59.314 [main] DEBUG c.m.v.resourcepool.BasicResourcePool - awaitAvailable(): [unknown]

18:07:59.726 [main] DEBUG o.a.i.t.jdbc.JdbcTransaction - Setting autocommit to false on JDBC Connection [com.mchange.v2.c3p0.impl.NewProxyConnection@22ff4249 [wrapping: com.mysql.jdbc.JDBC4Connection@2d1ef81a]]

18:07:59.753 [main] DEBUG c.san.mybatis.dao.SongDao.insertSong - ==>  Preparing: insert into t_song(name,singer,category,writer,language,issudate) values(?,?,?,?,?,?) 

18:07:59.813 [main] DEBUG c.san.mybatis.dao.SongDao.insertSong - ==> Parameters: 给我一首歌的时间(String), 周杰伦(String), 流行(String), 周杰伦(String), 国语(String), 2008-10-14 10:10:10.0(Timestamp)

18:07:59.815 [main] DEBUG c.san.mybatis.dao.SongDao.insertSong - <==    Updates: 1

18:07:59.817 [main] DEBUG c.s.m.d.SongDao.insertSong!selectKey - ==>  Preparing: select last_insert_id() 

18:07:59.818 [main] DEBUG c.s.m.d.SongDao.insertSong!selectKey - ==> Parameters: 

18:07:59.843 [main] DEBUG c.s.m.d.SongDao.insertSong!selectKey - <==      Total: 1


写回答

1回答

好帮手慕柯南

2020-04-01

同学你好!

手动调用sqlSession要记得提交事务,否则数据没有正确写入数据库

http://img.mukewang.com/climg/5e8472bd0948d31c06840252.jpg

祝学习愉快~

0

0 学习 · 8016 问题

查看课程