※Annotation 設定
※build.gradle
compile 'org.mybatis.spring.boot:mybatis-spring-boot-starter:1.3.2' compile 'com.alibaba:druid:1.1.10'
※druid 就是類似 c3p0 連線池的東西
※application.properties
spring.datasource.driverClassName=oracle.jdbc.driver.OracleDriver spring.datasource.url=jdbc:oracle:thin:@172.26.103.1:1521:lottery spring.datasource.username=lott_new_a3d1 spring.datasource.password=Lottery2011 spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
※可參考官網,搜尋 DATASOURCE
※controller
@Controller @RequestMapping("/chess") public class ChessAction { @Autowired private IChessService service; @RequestMapping(path = "/addChess") public String addChess(Chess chess) { return service.addChess(chess) == 1 ? "chess/success" : "chess/fail"; } }
※在 classpath 下templates 增加 chess 資料夾,增加成功和失敗頁的 html
※service & serviceImpl
public interface IChessService { int addChess(Chess chess); } @Service @Transactional public class ChessServiceImpl implements IChessService { @Autowired private IChessDAO chessDao; @Override public int addChess(Chess chess) { return chessDao.insertChess(chess); } }
※
※dao
@Mapper public interface IChessDAO { @Insert("INSERT INTO CHESS(ID, NAME, PRICE) VALUES(#{id}, #{name}, #{price})") public int insertChess(Chess chess); }
※在測試類增加 @MapperScan("ooo.xxx.dao") 和這裡的 @Mapper 是一樣的意思,兩者取其一即可,但都寫也是 OK 的
※addChess.html
<form action="chess/addChess"> 編號:<input name="id" /><br /> 棋名:<input name="name" /><br /> 價錢:<input name="price" /><br /> <input type="submit" value="送出" /> </form>
※
※測試類
@SpringBootApplication // @MapperScan("ooo.xxx.dao") @ComponentScan({ "ooo.xxx.serviceImpl", "ooo.xxx.controller", "ooo.xxx.dao" }) public class Test { public static void main(String[] args) { SpringApplication.run(Test.class, args); } }
※啟動後,打上「http://localhost:9000/addChess.html」
※如果啟動出現錯誤 Consider defining a bean of type 'ooo.xxx.service.IChessService' in your configuration,那就要加上 @ComponentScan,第一章有說過,必需放在啟動類或啟動類的子類,但是我並沒有,所以使用這個 annotation 是個變通的方式
※要心心,這裡有一點錯,測試頁都會 Whitelabel Error Page
※XML 設定
※application.properties
mybatis.mapper-locations=ooo/xxx/mapper/*.xml mybatis.type-aliases-package=ooo.xxx.javabean
※annotation 設定再加上這兩行,參考 mybatis 官網,注意範例是有加 mybatis. 開頭的
※注意mapper-locations 的路徑是用「/」分開,不是用「.」
※第二個是在 xml 的 parameterType 會自動加上這裡設定的前綴,如果不設定,那 xml 就只好全打出來了
※mapper
<?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="ooo.xxx.dao.IChessDAO"> <insert id="insertChess" parameterType="Chess"> INSERT INTO CHESS(ID, NAME, PRICE) VALUES(#{id}, #{name}, #{price}) </insert> </mapper>
※有了xml,dao 的 @Insert 就不需要了
※!DOCTYPE等的,是複製官網的
沒有留言:
張貼留言