4.java,mysql jdbc简单实现(1)
2015-12-03 08:36
615 查看
1. mysql jdbc
sql语言分类:
数据定义语言(DDL):create,alert,drop数据操作语言(DML):insert,update,delete等语句
数据查询语言(DQL):select 等
数据控制语言(DCL):grant,revoke,commit,rollback等。
sql基本操作:
创建表: create table xx(id varchar(255) primarily key,name varchar(255));删除表:drop table xx;
插入数据:insert into xx values(‘01’, ‘jack’);
修改表:alert table xx add yyy varchar(255)
2. 建立mysql连接
1.sql 连接都需要数据库驱动mysql中的就是:mysql-connector-java-5.0.4-bin.jar;在java中使用mysql数据库时都需要添加该jar包到path中;
(ps:mysql 5.0以上才支持存储过程和触发器)
2.driver加载
// 通过反射 String clazz = "com.mysql.jdbc.Driver"; // 装载驱动类 Class.forName(clazz);
3.connection的参数
String url = "" + "jdbc:mysql://localhost:3306/myjdbc?" + "user=root&" + "password=xxxxxx"; connection = DriverManager.getConnection(url);
jdbc:mysql://localhost:3306 使用的是本地数据库的3306端口;
myjdbc 使用的具体数据库;
user=root 数据库用户;
password=xxxxxx 数据用户密码;
其他属性
autoReconnect 连接失败后重新连接(boolean)
maxRows 查询结果的最大行数
userUnicode 使用unicode编码(boolean 一般都是utf-8,配合下一个属性使用)
characterEncoding 使用的编码(utf-8)
maxReconnect 最大重新连接数
示例
public class SimpleJDBCConnection { public static Connection getConnection(){ java.sql.Connection connection = null; String clazz = "com.mysql.jdbc.Driver"; String url = "" + "jdbc:mysql://localhost:3306/myjdbc?" + "user=root&" + "password=xxxx"; try { // 装载数据库驱动 Class.forName(clazz); connection = DriverManager.getConnection(url); } catch (Exception e) { // TODO: handle exception e.printStackTrace(); } return connection; } }
3. 实体对象
实体对象主要用于对应数据库的表的数据使用简单的person(PS:写好字段后再eclipse中使用”Alt+Shift+S“出来的很多方便的快捷代码生成,比如常用的getter和setter,toString()方法)
public class Person { public String pid; public String pname; public int psex; public String getPid() { return pid; } public void setPid(String pid) { this.pid = pid; } public String getPname() { return pname; } public void setPname(String pname) { this.pname = pname; } public int getPsex() { return psex; } public void setPsex(int psex) { this.psex = psex; } @Override public String toString() { return "Person [pid=" + pid + ", pname=" + pname + ", psex=" + psex + "]"; } }
4. 测试类
在测试类中只使用简单的陈述性语句statement来查询public class TestJDBC { public static void main(String[] args) { try { // 获取connection 连接 Connection connection = SimpleJDBCConnection.getConnection(); // 查询语句 Statement statement = connection.createStatement(); // 建立sql对象执行查询 ResultSet resultSet = statement.executeQuery("SELECT * FROM person;"); // 存储对象 Collection<Person> persons = new ArrayList<Person>(); // 循环取值 Person person = new Person(); while(resultSet.next()){ person.setPid(resultSet.getString("pid")); person.setPname(resultSet.getString("pname")); person.setPsex(resultSet.getInt("psex")); persons.add(person); } // 关闭连接 statement.close(); System.out.println("查询结果:\n" + persons); } catch (Exception e) { System.out.println("数据库错误LOG:"); e.printStackTrace(); } } }
resultset 结果集
是查询返回结果,包含多行数据,主要的操作方法是对getString、getInt、getLong、getObject等
excute
相关文章推荐
- Spring mvc基本原理
- Java回炉之语言基础
- java 生产消费者模式(一)
- Eclipse 断点不起作用的原因
- Bulls and Cows-LeetCode
- java图形处理-Java 2D
- 理解java的三大特性之封装
- Java中super的几种用法并与this的区别
- 关于java中的static
- struts集成到eclipse学习
- spring扫描_include-filter_me
- MyEclipse删除网上复制下来的来代码带有的行号(正则去除行号)
- Java的Struts框架中的主题模板和国际化设置
- java必学必会之static关键字
- The road from my heart to java chapter3
- Java代码获取NTP服务器时间
- Java多线程编程总结(备注)
- ArrayList的内存泄露
- java日志,需要知道的几件事
- Java/Scala probablePrime(bitLength, Random)