利用navicat,導入mybatis.sql,建立兩個數據表order表和user表。java
SET FOREIGN_KEY_CHECKS=0; -- ---------------------------- -- Table structure for `orders` -- ---------------------------- DROP TABLE IF EXISTS `orders`; CREATE TABLE `orders` ( `id` int(11) NOT NULL AUTO_INCREMENT, `user_id` int(11) NOT NULL COMMENT '下單用戶id', `number` varchar(32) NOT NULL COMMENT '訂單號', `createtime` datetime NOT NULL COMMENT '建立訂單時間', `note` varchar(100) DEFAULT NULL COMMENT '備註', PRIMARY KEY (`id`), KEY `FK_orders_1` (`user_id`), CONSTRAINT `FK_orders_id` FOREIGN KEY (`user_id`) REFERENCES `user` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION ) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8; -- ---------------------------- -- Records of orders -- ---------------------------- INSERT INTO `orders` VALUES ('3', '1', '1000010', '2015-02-04 13:22:35', null); INSERT INTO `orders` VALUES ('4', '1', '1000011', '2015-02-03 13:22:41', null); INSERT INTO `orders` VALUES ('5', '10', '1000012', '2015-02-12 16:13:23', null); -- ---------------------------- -- Table structure for `user` -- ---------------------------- DROP TABLE IF EXISTS `user`; CREATE TABLE `user` ( `id` int(11) NOT NULL AUTO_INCREMENT, `username` varchar(32) NOT NULL COMMENT '用戶名稱', `birthday` date DEFAULT NULL COMMENT '生日', `sex` char(1) DEFAULT NULL COMMENT '性別', `address` varchar(256) DEFAULT NULL COMMENT '地址', PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=27 DEFAULT CHARSET=utf8; -- ---------------------------- -- Records of user -- ---------------------------- INSERT INTO `user` VALUES ('1', '王五', null, '2', null); INSERT INTO `user` VALUES ('10', '張三', '2014-07-10', '1', '北京市'); INSERT INTO `user` VALUES ('16', '張小明', null, '1', '河南鄭州'); INSERT INTO `user` VALUES ('22', '陳小明', null, '1', '河南鄭州'); INSERT INTO `user` VALUES ('24', '張三丰', null, '1', '河南鄭州'); INSERT INTO `user` VALUES ('25', '陳小明', null, '1', '河南鄭州'); INSERT INTO `user` VALUES ('26', '王五', null, null, null);
idea建立工程,導入驅動包mysql-connector-java-5.1.37-bin.jar到lib文件夾mysql
7步使用jdbcsql
- 註冊驅動(從 JDBC3 開始,目前已經廣泛使用的版本。能夠不用註冊驅動而直接使用。故7步)
- 獲取數據庫鏈接對象 Connection
- 定義sql,?表示佔位符
- 獲取預處理statement(prepareStatement)
- 設置sql語句中的參數(使用preparedStatement)
- 執行sql,接受返回結果
- 處理結果
- 釋放資源
代碼以下:數據庫
import java.sql.*; /** * @ClassName: JdbcTest * @author: benjamin * @version: 1.0 * @description: TODO * @createTime: 2019/07/12/16:27 */ public class JdbcTest { public static void main(String[] args) { //數據庫鏈接 Connection connection = null; //預編譯的Statement,使用預編譯的Statement提升數據庫性能 PreparedStatement preparedStatement = null; //結果集 ResultSet resultSet = null; try { String url = "jdbc:mysql://192.168.214.128:3306/mybatis?characterEncoding=utf-8"; //1. 經過驅動管理類獲取數據庫連接 connection = DriverManager.getConnection(url, "root", "ben123"); //2. 定義sql語句 ?表示佔位符 String sql = "select * from user where username = ?"; //3. 獲取預處理statement(prepareStatement) preparedStatement = connection.prepareStatement(sql); //4. 設置參數,第一個參數爲sql語句中參數的序號(從1開始),第二個參數爲設置的參數值 preparedStatement.setString(1, "王五"); //5. 向數據庫發出sql執行查詢,查詢出結果集 resultSet = preparedStatement.executeQuery(); //6. 執行結果(遍歷查詢結果集) while(resultSet.next()){ System.out.println(resultSet.getString("id") + " " + resultSet.getString("username")); } } catch (Exception e) { e.printStackTrace(); }finally{ //7. 釋放資源 if(resultSet!=null){ try { // 先關閉resultSet resultSet.close(); } catch (SQLException e) { e.printStackTrace(); } } if(preparedStatement!=null){ try { //再關閉preparedStatement preparedStatement.close(); } catch (SQLException e) { e.printStackTrace(); } } if(connection!=null){ try { // 最後關閉connection connection.close(); } catch (SQLException e) { e.printStackTrace(); } } } } }
結果以下:mybatis
1 王五 26 王五ide