Consulte o exemplo oficial: http://spring.io/guides/gs/relational-data-access/
1. Preparação do projeto
Crie uma nova tabela "t_order" depois de criar o banco de dados MySQL
Set estrago_key_checks = 0;------------------------------- Tabela de tabela para `t_order`-- ------------------------------ Tabela de soltar se existe` t_order`; crie tabela `t_order` (` `Order_id` varchar (36) não null,` order_no` varchar (50) default null, `` `` `` `` `` `` `` `50) default_id ',` `não null,` `` `` ``' 'varchar') int (11) nulo padrão, chave primária (`order_id`)) mecanismo = myisam padrão charset = utf8;-------------------------------
Modificar Pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd "> <ModelVersion> 4.0.0 </modelversion> <puperid> com.github.carter659 </frugid> <TRAFACTID> spring04 </stifactId> <siersh> 0.1-SNAPSNAPT </Groupid> <name> spring04 </name> <url> http://maven.apache.org </url> <aroger> <puperid> org.springframework.boot </proupid> <TRAFACTID> spring-boot-starter-parent </artifactId> <versão> 1./42.remease> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <java.version>1.8</java.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <Depencency> <PuerpId> org.springframework.boot </groupid> <TRATIFACTID> primavera-boot-devtools </stutifactId> <cptional> true </cptional> </dependency> <stifactId> <vringId> org.springframework.BOOT <Imecent> <strofactId> spring-spring- spring-spring- <Ependency> <PuerpId> org.springframework.boot </frugiD> <stifactId> primavera-boot-starter-jdbc </artifactId> </dependency> <pendence> <puperid> mysql </groupid> <TarifactId> mySql-Connector-Java </ArtifactId> <groupId>commons-dbcp</groupId> <artifactId>commons-dbcp</artifactId> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build></project>
2. Escreva arquivos da classe:
Modificar app.java
pacote com.github.carter659.spring04; importar org.springframework.boot.springApplication; importar org.springframework.boot.autoconfigure.springbootapplication;/** * blog: http://www.cnbloglic.com; */@SpringBootApplicationPublic Class App {public static void main (string [] args) {springapplication.run (app.class, args); }}Crie um novo arquivo de transportadora de dados "Order.java"
pacote com.github.carter659.spring04; importar java.util.date;/** * Fonte do blog: http://www.cnblogs.com/goodhelper/ * @author liu dong * */public class Order {public string id; string pública não; data de data pública; quantidade pública int; /** * omita se sente definido */}Crie uma nova classe de camada de persistência de dados "Orderdao.java"
pacote com.github.carter659.spring04; importar java.util.ArrayList; importar java.util.list; importar java.util.uuid; import org.springframework.beans.factory.annotation.autowired; importação; org.springframework.jdbc.support.rowset.sqlrowset; importar org.springframework.tereotype.repository;/** * Fonte do blog: http://www.cnblogs.com/goodper/ * @author liu don * */repross JDBCTemplate JDBCTemplate; Lista pública <Dorm> findAll () {list <Derm> list = new ArrayList <> (); String sql = "selecione * de t_order"; SqlRowset linhas = jdbctemplate.QueryForrowset (sql, novo objeto [] {}); while (lobs.Next ()) {Order Order = new Order (); list.add (ordem); ordem.id = linhas.getString ("order_id"); ordem.no = linhas.getString ("order_no"); order.date = linhas.getdate ("order_date"); order.quantity = lobs.getint ("quantidade"); } Lista de retorno; } ordem pública get (string id) {ordem de ordem = null; String sql = "Selecione * de t_order onde order_id =?"; SqlRowset linhas = jdbctemplate.queryforrowset (sql, novo objeto [] {id}); while (linhas.Next ()) {Order = new Order (); ordem.id = linhas.getString ("order_id"); ordem.no = linhas.getString ("order_no"); order.date = linhas.getdate ("order_date"); order.quantity = lobs.getint ("quantidade"); } ordem de retorno; } public string insert (ordem de ordem) {string id = uuid.randomuuid (). tostring (); String sql = "inserir em t_order (order_id, order_no, order_date, quantidade) valores (?,?,? ,?)"; jdbcTemplate.Update (SQL, novo objeto [] {id, order.no, novo java.sql.date (order.date.gettime ()), ordem.quantity}); ID de retorno; } public void update (pedido de pedido) {string sql = "update t_order set order_no =?, order_date =?, quantidade =? onde order_id =?"; jdbcTemplate.Update (sql, novo objeto [] {order.no, new java.sql.date (order.date.gettime ()), order.quantity, order.id}); } public void delete (string id) {string sql = "exclua de t_order onde order_id =?"; jdbcTemplate.UpDate (SQL, novo objeto [] {id}); }}As operações no banco de dados, como o nome sugere:
FINDALL-> Consulte todos os dados
Obtenha-> Obtenha dados através do ID
Inserir-> Inserir dados
ATUALIZAÇÃO-> Modificar dados
Excluir-> Excluir dados
Crie um novo controlador "MainController.java"
pacote com.github.carter659.spring04; importar java.util.hashmap; importar java.util.map; importar org.springframework.beans.actory.annotation.autowired; importrg.springframework.teretopy.controller; imported ou org.springframework.web.bind.annotation.postMapping; importar org.springframework.web.bind.annotation.requestbody; importação org.springframework.web.bind.annotation.ropsenseBody; @Autowired Private OrderDao Orderdao; @GetMapping ("/") public string index () {return "index"; } @PostMapping ("/salvar") public @ResponseBody Map <String, Object> Salvar (@RequestBody Order Order) {map <string, object> resultado = new Hashmap <> (); if (stringUtils.isnullorEmpty (order.id)) order.id = orderdao.insert (ordem); else {orderdao.update (ordem); } resultado.put ("id", order.id); resultado de retorno; } @PostMapping ("/get") public @ResponseBody Object get (string id) {return orderdao.get (id); } @PostMapping ("/findall") public @ResponseBody Object findall () {return orderdao.findall (); } @PostMapping ("/Delete") public @ResponseBody Map <String, Object> Delete (string id) {map <string, object> resultado = new hashmap <> (); orderdao.delete (id); resultado.put ("id", id); resultado de retorno; }}3. Crie um novo modelo ThymEleaf
Crie um novo arquivo "SRC/Main/Recursos/Modelos/Index.html"
<! Doctype html> <html xmlns: th = "http://www.thymeleaf.org"> <head> <meta http-equiv = "content-type" content = "text/html; charset = utf-8"/> <title> tocar primavera-clining = " src = "// cdn.bootcss.com/angular.js/1.5.6/angular.min.js"></Script><script type =" text/javascript ">/*<! [CDATA [*/var App = angular.module ('App', []); app.controller('MainController', function($rootScope, $scope, $http) { $scope.data = {}; $scope.rows = []; //Add $scope.add = function() { $scope.data = { no : 'No.1234567890', quantity : 100, 'date' : '2016-12-30' }; } // editar $ scope.edit = function (id) {for (var i em $ scope.Rows) {var row = $ scope.Rows [i]; Scope.Rows [i]; $ scope.get (r.id); $ http ({url: '/get? id =' + id, método: 'post',}). sucess (function (dados) {for (var i em $ scope.rows) {var row = $ scope.rows [i]; if (data.id == row.id) {row.no = data.no; row.date; scope.rows.push (dados); /*]]>*/</</script> </head> <corpo ng-app = "App" ng-controller = "MainController"> <H1> tocar bota de mola-com jdbc </h1> <h4> <a href = "http://www.cnblog.goodhcom/goodhels <input type = "button" value = "add" ng-click = "add ()" /> <input type = "button" value = "salvar" ng-click = "save ()" /> <r /> <br /> <h3> informação da lista: </h3> <input id = "type =" hidden "ng-model = ".Id" Data "> <input =" "type =" hidden "" ng-model = ".Id "Data" #a0c6e5 "> <tr> <td> nº.: </td> <td> <input id =" no "ng-model =" data.no "/> </td> <td> data: </td> <td> <input id =" date "ng-model =" data.date "/> </td> id = "Quantity" ng-model = "data.quantity"/> </td> </tr> </tabela> <br/> <h3> Lista da lista: </h3> <tabela celularpacing = "1" style = "background-color: #a0c6e5"> <style = "text-align: center; color; #00766; <Td> operação </td> <td> número </td> <td> data </td> <td> Quantidade </td> </tr> <ttr ng-repeat = "linha em linhas" bgcolor = '#f4faff'> <TD> <input ng-lick = "edit (Row.id) ng-click = "del (row.id)" value = "delete" type = "button"/> </td> <td> {{row.no}} </td> <td> {{row.date}} </td> <td> {{row.quantity}} </td href = "http://www.cnblogs.com/goodhelper/"> clique para acessar o blog original </a> </body> </html>Use o Ajax do AngularJS para chamar o método de plano de fundo da mola de bota MV.
4. Conexão do banco de dados
Crie um novo arquivo "SRC/Main/Recursos/Application.properties"
spring.datasource.initialize=falsespring.datasource.url=jdbc:mysql://localhost:3306/demospring.datasource.username=rootspring.datasource.password=spring.datasource.driver-class-name=com.mysql.jdbc.Driver
A estrutura completa é:
5. Efeito de operação
Digite "http: // localhost: 8080/" no seu navegador
Adicionar dados:
Salvar novos dados:
Editar dados:
Excluir dados:
Exclua o efeito da conclusão:
Código: https://github.com/carter659/spring-boot-04.git
O exposto acima é todo o conteúdo deste artigo. Espero que seja útil para o aprendizado de todos e espero que todos apoiem mais o wulin.com.