java免费源码大全中国hd?java影视源码
各位老铁们,大家好,今天由我来为大家分享java免费源码大全中国hd,以及java影视源码的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家了哈,下面我们开始吧!
求Java web增删改查 极简源码
//用户新增
publicbooleanaddUser(Usersuser){
try{
conn=ConnDB.getConnection();
Stringsql="insertintotb_usersvalues(default,?,?,?,?,?,?)";
System.out.println(sql);
ps=conn.prepareStatement(sql);
ps.setInt(1,user.getDepID());
ps.setString(2,user.getUserName());
ps.setString(3,user.getUserPwd());
ps.setString(4,user.getUserCode());
ps.setString(5,user.getUserSex());
ps.setInt(6,user.getUserAge());
if(ps.executeUpdate()==1){
returntrue;
}
}catch(Exceptione){
e.printStackTrace();
}finally{//关闭当前页打开的相关对象
ConnDB.close(conn,ps,null);
}
returnfalse;
}
//用户删除
publicbooleandelUser(intid){
try{
conn=ConnDB.getConnection();
Stringsql="deletefromtb_userswhereid=?";
System.out.println(sql);
ps=conn.prepareStatement(sql);
ps.setInt(1,id);
if(ps.executeUpdate()==1){
returntrue;
}
}catch(Exceptione){
e.printStackTrace();
}finally{//关闭当前页打开的相关对象
ConnDB.close(conn,ps,null);
}
returnfalse;
}
//用户编辑
publicbooleanupdateUser(Usersuser){
try{
conn=ConnDB.getConnection();
Stringsql="updatetb_userssetdepID=?,userName=?,userPwd=?,userCode=?,userSex=?,userAge=?whereid=?";
System.out.println(user.getDepID()+user.getUserName()+user.getUserPwd()+user.getUserCode()+user.getUserSex()+user.getUserAge()+user.getId());
ps=conn.prepareStatement(sql);
ps.setInt(1,user.getDepID());
ps.setString(2,user.getUserName());
ps.setString(3,user.getUserPwd());
ps.setString(4,user.getUserCode());
ps.setString(5,user.getUserSex());
ps.setInt(6,user.getUserAge());
ps.setInt(7,user.getId());
if(ps.executeUpdate()==1){
returntrue;
}
}catch(Exceptione){
e.printStackTrace();
}finally{//关闭当前页打开的相关对象
ConnDB.close(conn,ps,null);
}
returnfalse;
}
//根据id查询用户
publicUsersfindAllUserById(intid){
Usersu=null;
DepDaodepd=null;
try{
conn=ConnDB.getConnection();
Stringsql="select*fromtb_userswhereid=?";
System.out.println(sql);
ps=conn.prepareStatement(sql);
ps.setInt(1,id);
rs=ps.executeQuery();
if(rs.next()){
depd=newDepDao();
Departmentdep=depd.findAllDepById(rs.getInt("depID"));
System.out.println(dep.getDepName());
u=newUsers();
u.setId(rs.getInt("id"));
u.setDepID(rs.getInt("depID"));
u.setUserName(rs.getString("userName"));
u.setUserPwd(rs.getString("userPwd"));
u.setUserCode(rs.getString("userCode"));
u.setUserSex(rs.getString("userSex"));
u.setUserAge(rs.getInt("userAge"));
u.setDep(dep);
}
}catch(Exceptione){
e.printStackTrace();
}finally{//关闭当前页打开的相关对象
ConnDB.close(conn,ps,rs);
}
returnu;
}这是我在dao层写的代码,都调用了ConnDB这个类,这个类完成了驱动的注册,及连接数据库的功能,代码如下:
packagecom.asjy.util;
importjava.sql.Connection;
importjava.sql.DriverManager;
importjava.sql.PreparedStatement;
importjava.sql.ResultSet;
importjava.sql.SQLException;
importjava.sql.Statement;
publicclassConnDB{
privatestaticStringurl="jdbc:mysql://localhost:3306/news";
privatestaticStringuser="root";
privatestaticStringpass="root";
//1.加载驱动
static{
try{
Class.forName("com.mysql.jdbc.Driver");
}catch(ClassNotFoundExceptione){
System.out.println("驱动加载失败");
}
}
//2.建立数据库连接对象
publicstaticConnectiongetConnection()throwsException{
returnDriverManager.getConnection(url,user,pass);
}
//3.关闭数据库
publicstaticvoidclose(Connectionconn,Statementps,ResultSetrs){
try{
if(rs!=null){
rs.close();
rs=null;
}
if(ps!=null){
ps.close();
ps=null;
}
if(conn!=null){
conn.close();
conn=null;
}
}catch(SQLExceptione){
e.printStackTrace();
}
}
}
java小游戏源代码
介绍这个给你把...我空间还有很多..
importjava.applet.Applet;
importjava.applet.AudioClip;
importjava.awt.Dimension;
importjava.awt.Font;
importjava.awt.Toolkit;
importjavax.sound.sampled.AudioFileFormat;
importjavax.sound.sampled.AudioSystem;
importjavax.swing.JFrame;
importjavax.swing.JPanel;
importjava.awt.Rectangle;
importjavax.swing.BorderFactory;
importjavax.swing.JButton;
importjavax.swing.JOptionPane;
importjavax.swing.JSlider;
importjavax.swing.JLabel;
importjavax.swing.SwingUtilities;
importjavax.swing.UIManager;
importjavax.swing.event.ChangeEvent;
importjavax.swing.event.ChangeListener;
importjava.awt.event.ActionEvent;
importjava.awt.event.ActionListener;
importjava.awt.event.KeyAdapter;
importjava.awt.event.KeyEvent;
importjava.io.File;
importjava.util.Vector;
publicclassFrameextendsJFrameimplementsRunnable{
JPanelcontentPane;
JPaneljPanel1=newJPanel();
JButtonjButton1=newJButton();
JSliderjSlider1=newJSlider();
JLabeljLabel1=newJLabel();
JButtonjButton2=newJButton();
JLabeljLabel2=newJLabel();
intcount=1,rapidity=80;//count当前进行的个数,rapidity游标的位置
intzhengque=0,cuowu=0;
intrush[]={10,20,30};//游戏每关的个数可以自由添加.列{10,20,30,40,50}
intrush_count=0;//记录关数
charlist[]={'A','B','C','D','E','F','G','H','I','J','K','L',
'M','N','O','P','Q','R','S','T','U','V','W','X','Y',
'Z','1','2','3','4','5','6','7','8','9'};//随机出现的数字可以自由添加
Vectornumber=newVector();
Stringpaiduan="true";
AudioClipMusci_anjian,Music_shibai,Music_chenggong;
publicFrame(){
try{
setDefaultCloseOperation(EXIT_ON_CLOSE);
//-----------------声音文件---------------------
Musci_anjian=Applet.newAudioClip(newFile("sounds//anjian.wav")
.toURL());
Music_shibai=Applet.newAudioClip(newFile("sounds//shibai.wav")
.toURL());
Music_chenggong=Applet.newAudioClip(newFile(
"sounds//chenggong.wav").toURL());
//---------------------------------------
jbInit();
}catch(Exceptionexception){
exception.printStackTrace();
}
}
/**
*Componentinitialization.
*
*@throwsjava.lang.Exception
*/
privatevoidjbInit()throwsException{
contentPane=(JPanel)getContentPane();
contentPane.setLayout(null);
setSize(newDimension(588,530));
setTitle("FrameTitle");
jPanel1.setBorder(BorderFactory.createEtchedBorder());
jPanel1.setBounds(newRectangle(4,4,573,419));
jPanel1.setLayout(null);
jButton1.setBounds(newRectangle(277,442,89,31));
jButton1.setText("开始");
jButton1.addActionListener(newFrame1_jButton1_actionAdapter(this));
jSlider1.setBounds(newRectangle(83,448,164,21));
jSlider1.setMaximum(100);
jSlider1.setMinimum(1);
jSlider1.setValue(50);
jLabel1.setText("速度");
jLabel1.setBounds(newRectangle(35,451,39,18));
jButton2.setBounds(newRectangle(408,442,89,31));
jButton2.setText("结束");
jButton2.addActionListener(newFrame1_jButton2_actionAdapter(this));
jLabel2.setText("第一关:100个");
jLabel2.setBounds(newRectangle(414,473,171,21));
contentPane.add(jPanel1);
contentPane.add(jButton2);
contentPane.add(jButton1);
contentPane.add(jSlider1);
contentPane.add(jLabel1);
contentPane.add(jLabel2);
this.addKeyListener(newMyListener());
jButton1.addKeyListener(newMyListener());
jSlider1.addKeyListener(newMyListener());
jSlider1.addChangeListener(newChangeListener(){
publicvoidstateChanged(ChangeEvente){
rapidity=jSlider1.getValue();
}
});
}
publicvoidrun(){
number.clear();
zhengque=0;
cuowu=0;
paiduan="true";
while(count<=rush[rush_count]){
try{
Threadt=newThread(newTthread());
t.start();
count+=1;
Thread.sleep(1000+(int)(Math.random()*2000));//生产下组停顿时间
//最快1快.最慢2秒
}catch(InterruptedExceptione){
e.printStackTrace();
}
}
while(true){//等待最后一个字符消失
if(number.size()==0){
break;
}
}
if(zhengque==0){//为了以后相除..如果全部正确或者错误就会出现错误.所以..
zhengque=1;
}
if(cuowu==0){
cuowu=1;
}
if(paiduan.equals("true")){//判断是否是自然结束
if(zhengque/cuowu>=2){
JOptionPane.showMessageDialog(null,"恭喜你过关了");
rush_count+=1;//自动加1关
if(rush_count<rush.length){
if(rapidity>10){//当速度大于10的时候在-5提加速度.怕速度太快
rapidity-=5;//速度自动减10毫秒
jSlider1.setValue(rapidity);//选择位置
}
Threadt=newThread(this);
t.start();
}else{
JOptionPane.showMessageDialog(null,"牛B...你通关了..");
rush_count=0;
count=0;
}
}else{
JOptionPane.showMessageDialog(null,"请再接再励");
rush_count=0;
count=0;
}
}else{
rush_count=0;
count=0;
}
}
publicvoidjButton1_actionPerformed(ActionEvente){
Threadt=newThread(this);
t.start();
}
publicvoidjButton2_actionPerformed(ActionEvente){
count=rush[rush_count]+1;
paiduan="flase";
}
classTthreadimplementsRunnable{
publicvoidrun(){
booleanfo=true;
intY=0,X=0;
JLabelshow=newJLabel();
show.setFont(newjava.awt.Font("宋体",Font.PLAIN,33));
jPanel1.add(show);
X=10+(int)(Math.random()*400);
Stringparameter=list[(int)(Math.random()*list.length)]+"";
Beanbean=newBean();
bean.setParameter(parameter);
bean.setShow(show);
number.add(bean);
show.setText(parameter);
while(fo){
//---------------------数字下移--------------------
show.setBounds(newRectangle(X,Y+=2,33,33));
try{
Thread.sleep(rapidity);
}catch(InterruptedExceptione){
e.printStackTrace();
}
if(Y>=419){
fo=false;
for(inti=number.size()-1;i>=0;i--){
Beanbn=((Bean)number.get(i));
if(parameter.equalsIgnoreCase(bn.getParameter())){
cuowu+=1;
jLabel2.setText("正确:"+zhengque+"个,错误:"+cuowu
+"个");
number.removeElementAt(i);
Music_shibai.play();
break;
}
}
}
}
}
}
classMyListenerextendsKeyAdapter{
publicvoidkeyPressed(KeyEvente){
Stringuu=e.getKeyChar()+"";
for(inti=0;i<number.size();i++){
Beanbean=((Bean)number.get(i));
if(uu.equalsIgnoreCase(bean.getParameter())){
zhengque+=1;
number.removeElementAt(i);
bean.getShow().setVisible(false);
jLabel2.setText("正确:"+zhengque+"个,错误:"+cuowu+"个");
Music_chenggong.play();
break;
}
}
Musci_anjian.play();
}
}
publicstaticvoidmain(String[]args){
try{
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
}catch(Exceptionexception){
exception.printStackTrace();
}
Frameframe=newFrame();
DimensionscreenSize=Toolkit.getDefaultToolkit().getScreenSize();
DimensionframeSize=frame.getSize();
if(frameSize.height>screenSize.height){
frameSize.height=screenSize.height;
}
if(frameSize.width>screenSize.width){
frameSize.width=screenSize.width;
}
frame.setLocation((screenSize.width-frameSize.width)/2,
(screenSize.height-frameSize.height)/2);
frame.setVisible(true);
}
}
classFrame1_jButton2_actionAdapterimplementsActionListener{
privateFrameadaptee;
Frame1_jButton2_actionAdapter(Frameadaptee){
this.adaptee=adaptee;
}
publicvoidactionPerformed(ActionEvente){
adaptee.jButton2_actionPerformed(e);
}
}
classFrame1_jButton1_actionAdapterimplementsActionListener{
privateFrameadaptee;
Frame1_jButton1_actionAdapter(Frameadaptee){
this.adaptee=adaptee;
}
publicvoidactionPerformed(ActionEvente){
adaptee.jButton1_actionPerformed(e);
}
}
classBean{
Stringparameter=null;
JLabelshow=null;
publicJLabelgetShow(){
returnshow;
}
publicvoidsetShow(JLabelshow){
this.show=show;
}
publicStringgetParameter(){
returnparameter;
}
publicvoidsetParameter(Stringparameter){
this.parameter=parameter;
}
}
Jacks:Java兼容性测试,开放源码之路
什么是 Jacks? Jacks测试套件检查 Java编译器是否符合 JLS(Java语言规范)它由大量小测试案例组成每个测试都侧重于 JLS中特定的部分 Eric Blake为 Jacks项目作出了很大贡献他从面向细节领域描述了这种类型测试的好处通过生成带有指定编译行为的小测试案例然后将每个案例的执行自动化编译器作者或调试者可以快速找出 Java源码到字节码转换中存在的问题
开发 Jacks背后的概念是要简化对多编译器或多编译器配置所运行的测试(例如对上两个发行版的 Jikes和 Javac的 JDK发行版所进行的一组测试)如果手工进行您必须重复地设置环境变量然后根据所期望的结果来检查测试结果而通过使用 Jacks只需要更改到存放测试的目录调用 Jacks框架然后表明应该使用哪个编译器配置
Sun没有履行对 Java开发者所做的承诺激发了 Jikes小组对 Jacks项目的设置和运行 Sun再三声明它会把 Java JCK(Java Compatibility Kit)和相关 Java技术交到一个标准主体的手中但因为这还没有实现从事 Java项目的开发者就不能使用 JCK来对日常的开发进行回归测试当面对由于不合理的许可证限制而导致的代码人为不足时他们倾向于用新的更完善的系统来替换旧系统这就是发生在 Jacks上的故事(尽管 Jacks由 developerWorks主持它受 GPL而非 IBM Public License约束)
使用 Jacks
Jacks是以 Tcl编写的因此需要确保拥有 Tcl(需要版本来确保具有 tcltest扩展和 Unicode支持这两者都是 Jacks所必需的)可以下载用于 Windows的安装程序和用于 Red Hat x的 RPM也可以更方便地从源代码中构建如果您不知道到什么地方下载请参阅本文稍后的参考资料部分如果使用的是 Red Hat很可能已安装了 Tcl
安装了 Tcl后需要从 CVS取出 Jacks然后通过将编译器路径名包括在要测试的编译器的 Jacks _setup配置文件中来配置 Jacks对于每个希望支持的配置都需要一个 _setup文件例如 Jacks带有 javac_setup文件需要编辑该文件来为 javac设置路径 Eric Blake说最困难的部分是断定如何测试 Jikes因为我在环境中已设置了 JIKESPATH但我想出了要在 jikes_setup配置文件中更改什么内容一切都很顺利
从 CVS模块中取出 Jacks源代码
setenv CVSROOT:pserver:anoncvs@:/usr/cvs/jikes cvs login
paswsd anoncvs
cvs checkout jacks
可以对数量不限的编译器或编译器配置使用 Jacks要除去某一编译器的配置只需要删除其 _setup文件
从 CVS中取出源代码后就需要在路径中包括顶层 Jacks目录这样才能运行 Jacks shell脚本为谨慎起见最初运行 shell脚本时应该不带任何自变量以确保每项都经过正确配置
% jacks
如果一切正常将看到 Jacks脚本所接受的命令行选项的清单如果收到错误请检查在路径中是否能找到可执行文件 tclsh Windows用户需要直接运行 tclsh并将 jacks tcl自变量在一般标志之前传递给它还应该考虑安装 Cygwin UNIX兼容性层这样象 Unix用户一样您就可以使用提供的 shell脚本来运行 Jacks了下面的指令假设您使用的是 shell脚本
对于测试示例需要使用 Jikes编译器来运行给定子目录中的所有测试命令如下
% cd tests/jls/packages/package declarations/unnamed packages
% jacks jikes
开发新的回归测试
开发新的 Jacks测试案例非常简便照 Eric Blakes的话说基本上您设计一个简单的源文件来测试问题将它放在特定的 Jacks格式中然后运行 Jacks如果编译器结果与所期望的结果不一样它打印出错误这里是 Jacks主页上教程中有关添加新测试案例的一例
// File SynchronizedInterface java public synchronized interface SynchronizedInterface{}使用 Jikes编译时生成以下错误
% jikes SynchronizedInterface java
Found semantic error piling SynchronizedInterface java:
public synchronized interface SynchronizedInterface{}
<>
*** Error: synchronized is not a valid interface modifier
如果很快看一下 JLS的第节会发现 synchronized在该上下文中不是合法的修饰符如果尝试使用早期发行版 JDK中的 Javac编译器来编译相同的类则不会生成错误(该错误在稍后的发行版中得到修正)
% javac SynchronizedInterface java
现在既然问题得以重现可以通过以下步骤来对 Jacks测试套件添加回归测试案例
了解应该将测试案例放在哪个目录中
编写回归测试
在 Jacks框架中运行新测试
tcltest框架中回归测试的格式是
tcltest::test NAME DESCRIPTION{ MANDS
} EXPECTED_RESULT
这是 JLS第节中的第一个测试所以 NAME是
该测试案例在目录 tests/jls/interfaces/interface declarations/interface modifiers(位置基于 JLS节的名称)中
DESCRIPTION可以是任何想要的内容
MANDS一节包含了所有 Tcl命令但大多数情况只需要 Jacks中的 saveas和 pile方法
saveas命令使用两个自变量文件名和将保存到文件中的数据
saveas SynchronizedInterface java \{public synchronized interface SynchronizedInterface{}}pile命令使用任意数量的命令行自变量并将它们传递给 Java编译器它将返回 PASS FAIL或 WARN来表明编译器的退出状态
EXPECTED_RESULT是希望从 pile命令获得的结果
在该接口示例中编译应该不成功因此完整的回归测试应该类似于
tcltest::test{should generate error on synchronized interface}{ saveas SynchronizedInterface java \
{synchronized interface SynchronizedInterface{}}
pile SynchronizedInterface java
} FAIL检验结果
运行测试并检查结果是完全自动的因此可以真正地休息一下看看出现的结果 Jacks框架在测试目录中递归下降运行它所找到的所有测试
如果一切正常就不打印任何消息如果测试失败将打印有关失败的描述如 Mo Dejong在清单中显示的那样该例演示了 Javac中因为第一个构造器调用第二个构造器第二个又调用第一个所造成的错误 JLS规定这是非法的(第节)因此如果检测到这种情况 Java编译器必须用信号通知该错误
让我们看看 Jikes对于同一测试案例是如何做的在清单中我们将使用 Jacks中的一些特性可以让您将模式作为 Jacks脚本的第三个自变量传递将跳过那些名称与模式不匹配的测试案例在这个小案例中模式就是测试案例的名称在该例中请注意我们所感兴趣的那个测试案例是如何通过的其它测试案例是如何跳过的上面的输出表明在 Javac编译器中找到的错误在 Jikes中并不存在
尽管人类可读的结果非常有用但在您有许多要处理的测试案例的情况下它们很快就会变得非常难于管理 Jacks最近庆祝了一个重要的里程碑现在它包含了逾个 JLS独立测试案例有了这么多的测试案例没人能够记住在某一时刻哪些案例通过了哪些又失败了但不用害怕 Jacks包括了一系列记录和测试结果分析特性能够随时间跟踪测试结果这是一项关键特性因为它为 Java编译器开发者提供了一种跟踪错误修正状态和可能回归的方法
如何编写 Jacks以及为什么使用 Tcl
当实现例如 Jacks这样的测试套件时脚本语言是个很自然的选择而使用 Tcl也有以下几个原因
Tcl是开放源码因此在今后的一段时间内仍然会继续存在
易于安装不需要编译脚本
易于读写脚本语言远比 C/C++更易于掌握
易于使用字符串处理和常规规则表达式特性
高度可移植在比 Java多的平台上运行
过去十年中成功地在几千个组织中使用过
具有讽刺意味的是它曾是 Sun项目:)
Mo DeJong说 Jacks最了不起的一个特性是自生成文档在 Jacks主页上您可以找到到达测试案例索引页面的链接这些页面列出了所有可用的测试案例它以几种有用的方式进行索引和交叉引用可以方便地通过名称查找测试案例也可以通过现有测试来发现某个 JLS章节的内容是多么完善 Tcl高度动态的语言特性使自记录测试案例的实现更容易
到目前为止 Jacks支持以下几种 Java编译器
JDK(和也可以使用但已经过时了)
Jikes IBM的开放源码 Java编译器
Kaffe利用了 Kopi编译器
GCJ到 gcc的 Java前端
随处改进 Java编译器
Jacks最初着重只为 Jikes项目提供编译器测试原来的目标是要替换为 Jikes创建的自制测试系统但这个初衷由于太难建立和使用而被放弃了人们很快发现如果测试套件变得更常规一些就可以为其它 Java编译器项目使用这样将会导致已提交测试案例在数量上的增加至少让其它 Java专家评估一下正确性测试案例也并无大碍
Jikes项目自然大大利用鉴了 Jacks但 GCJ和 Kopi编译器项目又如何呢?Tom Tromey Red Hat的常任 Java领导者已经意识到了 Jacks开发对于 GCJ项目的作用 Jacks对于 GCJ项目已经有了实际意义每当我在进行前端编译器更改时就会运行 Jacks并定期使用 Jacks查找 GCJ中的错误我发现添加测试是桩小事框架非常易于使用考虑也很周到
lishixinzhi/Article/program/Java/Javascript/201311/25464
好了,本文到此结束,如果可以帮助到大家,还望关注本站哦!