1、Java网络及数据开发第一章线程与线程的实现一、线程概念和原理 软件:文档与数据的集合(产品)项目 程序:一序列的制定集合 进程:是一个程序在其空间范围的一些资源调度和分配; 线程:没有独立的运行空间和其它线程共享二、线程调度 1、Thread(类) Runnable(接口) 2、线程入口方法:Run(); 3、进程入口方法:main();例子:public class xiancheng extends Thread String s; public xiancheng(String s) this.s=s; public void run() while(true) System.out.
2、println(Thread.currentThread().getName(); public class xiantest public static void main(String args) xiancheng xc=new xiancheng(wo); xc.start(); while(true) System.out.println(main:+Thread.currentThread().getName(); 三、线程调度的实现 第一种:继承Thread类 第二种:实现Runnable接口 1、Thread类是线程类,它本身实现了Runnable接口,该类封装了线程的方法。
3、2、实现Runnable接口也可以实现线程的构造,此接口只有一个方法即run()方法,run()方法必须由实现了Runnable 接口的类实现。四、线程的常用方法 1、Start()启动一个线程; 2、run()定义该线程的动作;例子:public class cai implements Runnable String s; public cai(String s) this.s=s; public void run() for(int i=0;i10;i+) System.out.println(s+i); public class caitest public static void m
4、ain(String args) Thread tj=new Thread(new cai(tanji); Thread wby=new Thread(new cai(wangbingyu); tj.start(); wby.start(); 五、多线程求和例子:public class Threadsum extends Thread int from; int to; long sum; public Threadsum(int f,int t) this.from=f; this.to=t; long getsum() return sum; public void run() for(
5、int i=from;i=to;i+) sum=sum+i; public class test public static void main(String args) Threadsum ts=new Threadsum(1,100); ts.start(); long s=ts.getsum(); try ts.join();/等待ts线程执行完成 catch (InterruptedException e) / TODO Auto-generated catch block e.printStackTrace(); System.out.println(ts.isAlive();/ts
6、线程还活着 System.out.println(s); 例子2:public class xx extends Thread public void run() for(int i=0;i=100;i+) System.out.println(i); try Thread.sleep(1000); catch (InterruptedException e) / TODO Auto-generated catch block e.printStackTrace(); Thread.currentThread().getName(); public class xxtest public st
7、atic void main(String args) xx j=new xx(); j.start(); try j.join(); catch (InterruptedException e) / TODO Auto-generated catch block e.printStackTrace(); System.out.println(Thread.currentThread().getName(); 六、优先级通过 setpriority 方法 数值(max_priority 和 min_priority(是10和1),norm_priority(5))七、串口多线程(同步 (syn
8、chronized : 确定某个时刻只有一个线程允许执行特定代码)例子:public class yy extends Thread static Object os=new Object(); String ch; public yy(String ch) this.ch=ch; void printchar() for(int i=1;i=100;i+) System.out.println(ch); public void run() synchronized (os) for(int i=1;i=10;i+) printchar(); public class yytest publi
9、c static void main(String args) yy pa=new yy(a); yy pb=new yy(b); pa.start(); pb.start(); 第三章JDBC数据库访问技术一、JDBC的概念 1、JDBC是一种可用与执行sql语句的Java apl二、JDBC的任务1 Jdbc 能完成下列三件事: 和某个数据建立连接 向数据库发送不sql语句 处理数据库返回的结果2、statement接口 例子写入:import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLExce
10、ption;import java.sql.Statement;public class test public static void main(String args) String driver=com.microsoft.jdbc.sqlserver.SQLServerDriver; String url=jdbc:microsoft:sqlserver:/127.0.0.1:1433;databasename=us; String user=sa; String pass=1992119; Connection cn=null; Statement cmd=null; String
11、sql=insert into te values(sazi,19,tongnan); try /加载驱动 Class.forName(driver); /获取链接 cn=DriverManager.getConnection(url,user,pass); /准备命令 cmd=cn.createStatement(); /执行命令 cmd.executeUpdate(sql); catch (Exception e) / TODO Auto-generated catch block e.printStackTrace(); finally try cmd.close(); cn.close
12、(); catch (SQLException e) / TODO Auto-generated catch block e.printStackTrace(); 数据库的代码:create database uscreate table te( sname varchar(12), sage int, saddr varchar(20)select * from te/查询数据是否写入成功例子修改:import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;import java.
13、sql.Statement;public class test public static void main(String args) String driver=com.microsoft.jdbc.sqlserver.SQLServerDriver; String url=jdbc:microsoft:sqlserver:/127.0.0.1:1433;databasename=us; String user=sa; String pass=1992119; Connection cn=null; Statement cmd=null; String sql=update te set
14、sage=100 where sage=19; try /加载驱动 Class.forName(driver); /获取链接 cn=DriverManager.getConnection(url,user,pass); /准备命令 cmd=cn.createStatement(); /执行命令 cmd.executeUpdate(sql); System.out.println(修改成功); catch (Exception e) / TODO Auto-generated catch block e.printStackTrace(); finally try cmd.close(); cn
15、.close(); catch (SQLException e) / TODO Auto-generated catch block e.printStackTrace(); 数据库的代码与上面的相同;例子删除:import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;import java.sql.Statement;public class test public static void main(String args) String driver=com.microsoft
16、.jdbc.sqlserver.SQLServerDriver; String url=jdbc:microsoft:sqlserver:/127.0.0.1:1433;databasename=us; String user=sa; String pass=1992119; Connection cn=null; Statement cmd=null; String sql=delete from te where sage=100; try /加载驱动 Class.forName(driver); /获取链接 cn=DriverManager.getConnection(url,user,
17、pass); /准备命令 cmd=cn.createStatement(); /执行命令 cmd.executeUpdate(sql); System.out.println(删除成功); catch (Exception e) / TODO Auto-generated catch block e.printStackTrace(); finally try cmd.close(); cn.close(); catch (SQLException e) / TODO Auto-generated catch block e.printStackTrace(); 数据库不变例子查询:impor
18、t java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;public class test public static void main(String args) String driver=com.microsoft.jdbc.sqlserver.SQLServerDriver; String url=jdbc:microsoft:sqlserver:/127.0.0.1:1433;
19、databasename=us; String user=sa; String pass=1992119; Connection cn=null; Statement cmd=null; ResultSet rs=null; String sql=select * from te; try /加载驱动 Class.forName(driver); /获取链接 cn=DriverManager.getConnection(url,user,pass); /准备命令 cmd=cn.createStatement(); /执行命令 rs=cmd.executeQuery(sql); /处理 whil
20、e(rs.next() System.out.println(姓名:+rs.getString(1); System.out.println(年龄:+rs.getInt(2); System.out.println(地址:+rs.getString(3); catch (Exception e) / TODO Auto-generated catch block e.printStackTrace(); finally try cmd.close(); cn.close(); catch (SQLException e) / TODO Auto-generated catch block e.
21、printStackTrace(); 封装了的例子:import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;import java.sql.Statement;/* * 操作数据库。 * 连接 * execut sql; */public class SqlHelp static String driver = com.microsoft.jdbc.sqlserver.SQLServerDriver; static String url = jdbc:microsoft:sqls
22、erver:/127.0.0.1:1433;databasename=stu; static String user = sa; static String pass = ; static Statement cmd=null; /* * 得到一个连接 * return 返回连接好数据库的连接对象 */ public static Connection getConn() Connection cn = null; try Class.forName(driver); cn=DriverManager.getConnection(url,user,pass); catch (Exception
23、 e) e.printStackTrace(); return cn; /* * param 要执行的sql语句 insert update delete * return 影响的行数 */ public static int exeNoquery(String sql) int i=0; try cmd=getConn().createStatement(); i=cmd.executeUpdate(sql); catch (SQLException e) e.printStackTrace(); finally try cmd.close(); catch (SQLException e)
24、 e.printStackTrace(); return i; 输入的封装:import java.util.Scanner;/* * 输入帮助类 */public class InpuHelp static Scanner input=new Scanner(System.in); /* * 获得输入int * return 输入的值 int */ public static int getint() int i=input.nextInt(); return i; /* * 获得字符串输入 * return 输入的字符串 */ public static String getstrin()
25、 String s=input.next(); return s; 测试类:import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.SQLException;import com.qhit.bank.dal.InpuHelp;import com.qhit.bank.dal.SqlHelp;public class TestPrapaer /* * Demo prepareStatement命令 存数据 */ public static void main(String args) System.
26、out.println(请输入学号:); int a=InpuHelp.getint();/调用输入帮助类 System.out.println(请输入姓名:); String xm=InpuHelp.getstrin();/调用输入帮助类 System.out.println(请输入age:); int age=InpuHelp.getint();/调用输入帮助类 String sql=insert into xs(snum,sname,sage) values(?,?,?); PreparedStatement pcmd=null; /通过sqlhelp类来得到连接 Connection
27、cn=SqlHelp.getConn(); try /准备参数化命令 pcmd=cn.prepareStatement(sql); /为命令设置参数 pcmd.setInt(1, a); pcmd.setString(2, xm); pcmd.setInt(3, age); /执行命令 pcmd.execute();/这个方法很重要 执行增删改的sql语句 System.out.println(inert into ok.); catch (SQLException e) e.printStackTrace(); finally /关闭资源 try pcmd.close(); cn.close(); catch (SQLException e) e.printStackTrace
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1