实例 ( Statement ):

public class JDBC {
public static void main(String[] args) throws Exception {
Connection conn = null;
String sql;
// MySQL的JDBC URL编写方式:jdbc:mysql://主机名称:连接端口/数据库的名称?参数=值
// 避免中文乱码要指定useUnicode和characterEncoding
// 执行数据库操作之前要在数据库管理系统上创建一个数据库,名字自己定,
// 下面语句之前就要先创建javademo数据库
String url = "jdbc:mysql://192.168.8.83:3306/test?"
+ "user=root&password=root&useUnicode=true&characterEncoding=UTF8";
try {
// 之所以要使用下面这条语句,是因为要使用MySQL的驱动,所以我们要把它驱动起来,
// 可以通过Class.forName把它加载进去,也可以通过初始化来驱动起来,下面三种形式都可以
Class.forName("com.mysql.jdbc.Driver");// 动态加载mysql驱动
// or:
// com.mysql.jdbc.Driver driver = new com.mysql.jdbc.Driver();
// or:
// new com.mysql.jdbc.Driver();
System.out.println("成功加载MySQL驱动程序");
// 一个Connection代表一个数据库连接
conn = DriverManager.getConnection(url);
// Statement里面带有很多方法,比如executeUpdate可以实现插入,更新和删除等
Statement stmt = conn.createStatement();
sql = "create table student(NO char(20),name varchar(20),primary key(NO))";
int result = stmt.executeUpdate(sql);// executeUpdate语句会返回一个受影响的行数,如果返回-1就没有成功
if (result != -1) {
System.out.println("创建数据表成功");
sql = "insert into student(NO,name) values('2012001','陶伟基')";
result = stmt.executeUpdate(sql);
sql = "insert into student(NO,name) values('2012002','周小俊')";
result = stmt.executeUpdate(sql);
sql = "select * from student";
ResultSet rs = stmt.executeQuery(sql);// executeQuery会返回结果的集合,否则返回空值
System.out.println("学号\t姓名");
while (rs.next()) {
System.out.println(rs.getString(1) + "\t" + rs.getString(2));// 入如果返回的是int类型可以用getInt()
}
}
} catch (SQLException e) {
System.out.println("MySQL操作错误");
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
} finally {
conn.close();
}
}
}

实例 ( PreparedStatement ):

public class JDBC {
public static void main(String[] args) throws Exception {
PreparedStatement pstmt=null;
Connection con = null;
try {
Class.forName("com.mysql.jdbc.Driver");
System.out.println("Loading Driver succeeds");
String url="jdbc:mysql://192.168.8.83:3306/test";
String user="root";
String password="root";
con =DriverManager.getConnection(url,user,password);
//Statement statement=con.createStatement();
String sql= "select NO,name,password from student where name like ? or password like ?";//先占座,在等待来
//int num=statement.executeUpdate(sql);
pstmt=con.prepareStatement(sql);
pstmt.setString(1,"%"+"c"+"%");//前面的int型数字代表,sql语句中?的那一列 。设置sql中?的值,数据库中的下标从0开始
pstmt.setString(2, "%"+"6"+"%");
ResultSet resultSet=pstmt.executeQuery();//执行查询
//System.out.println("&&&");
while(resultSet.next()){
System.out.println(resultSet.getInt(1)+" "+resultSet.getString(2)+" "+resultSet.getString(3));//放在ResultSet中的查询结果 下标从1开始
}
} catch (Exception e) {
e.printStackTrace();
} finally {
if(pstmt != null){
pstmt.close();
}
if(con != null){
con.close();
}
}
}
}

最新文章

  1. Memcached 服务器端命令
  2. 代理模式(Proxy pattern)
  3. avalon.js 1.4.6简单列表数据绑定ms-repeat ms-click
  4. getStyle(),修改样式属性
  5. C#生成PDF文档,读取TXT文件内容
  6. Maven Profile
  7. visual studio 2013使用技巧
  8. 只响应ccTouchBegan的问题
  9. poj 1274The Perfect Stall
  10. 多平台Native库打入JAR包发布实战
  11. 搭建公司内部的NuGet服务器
  12. word20161231
  13. js去掉前后空格
  14. [.net core学习] .net core中的Rijndael取代方法
  15. BZOJ3669[Noi2014]魔法森林——kruskal+LCT
  16. python list [:1]
  17. 002.DHCP配置
  18. 转:纯CSS实现“鼠标移过显示层”效果
  19. 2、Spring Cloud - 入门概述
  20. C# chart.DataManipulator.FinancialFormula()公式的使用 线性回归预测方法

热门文章

  1. VS Code中编写html(5) 标签的布局设置
  2. js进度条插件pace.js
  3. SQLServer Oracle MySQL的区别
  4. When you hit a wall, just kick it in.
  5. python笔记3----第一个小爬虫
  6. vue 函数配置项watch以及函数 $watch 源码分享
  7. php 常用header
  8. linux一些简单的操作命令
  9. Mysql错误:#1054 - Unknown column '字段名' in 'field list'
  10. N - 畅通工程再续